Alright에 삽입되지 않았습니다. 먼저, Rails를 처음 사용하는데 이것은 처음부터 빌드하려고하는 첫 번째 프로젝트입니다.POST 요청의 매개 변수가 테이블
코스와 질문의 두 가지 모델이 있습니다. 특정 과정에 질문을 추가 할 수 있기를 원합니다. 그래서 과정은 질문의 부모 모델입니다. (코스 has_many : 질문과 질문 belongs_to : 물론) :
<%= render 'questions/form', :question => @course.questions.build %>
및 부분 질문/_form : 여기
<%= form_for(question) do |f| %>
<div class="field">
<%= f.text_field :content %>
<%= f.hidden_field :course_id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
와이 (가) 만드는 것입니다 과정에서
/쇼 나는이 부분 렌더링 함수 :
def create
@course = Course.find(params[:question][:course_id])
question = @course.questions.build
if question.save
redirect_to @course
end
end
하지만 내 콘솔에서 다음 출력을 얻습니다.
Started POST "/questions" for 127.0.0.1 at 2011-10-27 19:06:25 -0400
Processing by QuestionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"negkm0uXBez8sisXl3pFVgfvhcDkixFPiMjzM68mNVU=", "question"=>{"content"=>"hallo", "course_id"=>"2"}, "commit"=>"Create Question"}
Course Load (0.3ms) SELECT "courses".* FROM "courses" WHERE "courses"."id" = $1 LIMIT 1 [["id", "2"]]
(0.3ms) BEGIN
SQL (0.5ms) INSERT INTO "questions" ("content", "course_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["content", nil], ["course_id", 2], ["created_at", Thu, 27 Oct 2011 23:06:25 UTC +00:00], ["updated_at", Thu, 27 Oct 2011 23:06:25 UTC +00:00]]
(1.6ms) COMMIT
내가 이해하지 못하는 것은 매개 변수가 "콘텐츠"를 포함한다는 것이다 => "안녕하세요",하지만 내 테이블에 삽입 된 값은
나는 내가 만든 것을 꽤 확신 ... 무기 호입니다 이것은 시간이나 시행 착오의 산물이기 때문에 뒤죽박죽이되어 버렸습니다. 누구나 내가해야 할 작은 변화가 있거나 심지어 같은 목표를 달성하는 완전히 다른 방법이 있다면, 그것은 크게 감사 할 것입니다.
감사합니다. 귀하의 제안은 올바른 방향으로 나를 잡았습니다. 이것은 트릭을하는 것으로 보인다. 'question = @ course.questions.build (params [: question])' –
[attr_accessible] (http://api.rubyonrails.org/classes) /ActiveModel/MassAssignmentSecurity/ClassMethods.html#method-i-attr_accessible)는 _mass assignments_를 제한합니다. 이는 여기에서 일반적인 다음 단계입니다. :) – sarnold