Alrightに挿入されていません。まず、私はRailsを初めて使っています。これは最初からビルドしようとしている最初のプロジェクトです。POSTリクエストのパラメータがテーブル
私には2つのモデルがあります:コースと質問。私は特定のコースに質問を追加できるようにしたいので、コースは質問の親モデルです。
<%= 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 %>
、ここでは、作成している私は、部分的にレンダリングコース/ショーから
(もちろんコースにhas_many:質問と質問belongs_toの)関数:
def create
@course = Course.find(params[:question][:course_id])
question = @course.questions.build
if question.save
redirect_to @course
end
end
私のコンソールには、次の出力があります。私は私が作ったことをかなり確信している私は何を理解していないパラメータ=>「ハロー」「コンテンツ」を含むということですが、私のテーブルに挿入された値がnilである...
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