好的。首先,我是Rails的新手,这是我尝试从头开始构建的第一个项目。
我有2个模型:课程和问题。我希望能够将问题添加到特定课程,因此课程是问题的父模型。 (课程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
我不明白的是参数包含“content”=&gt;“hallo”,但插入我的表中的值是nil ...
我相当肯定我弄得一团糟,因为这是一小时或试错的产物,如果有人做了一点改变我应该做,或者甚至完全不同的方式来达到同样的目标,那就是非常感谢。
答案 0 :(得分:1)
您正在查找course
course_id
,如果存在params
,但您不再对content
哈希类对象,params
进行进一步引用question = @course.questions.build(params[:content])
中的参数 - 因此永远无法保存。尝试:
{{1}}