0

在创建“许多”模型对象之一时,我很难以一对多的关系成功分配外键。

更具体地说......我有两个模型,Course并且Section,其中Course has_many :sections和每个Section belongs_to :course。除其他属性外,每个部分都具有外键course_id

我想编写一个名为 的辅助方法current_course,这样当我编写create函数时,我可以编写在创建current_course.sections.build(params[:section])时自动分配外键的函数。course_id换句话说,current_course将采用从中单击它的类的 id (ie /class/1/) 并使其等于course_id新创建的部分。我尝试了@current_course ||= Course.find(params[:course_id]).. 但它在创建时不断抛出 ID 错误。我做错了什么,我该如何纠正我的current_course方法?谢谢!

4

1 回答 1

0

你在做什么看起来基本上是正确的。

您的create控制器通常在开头会有这样的一行。(你根本找不到尚未创建的东西。)

@course = Course.new(params[:course])

如果你知道你要构建一个Section,你可能想@course.sections.build在你的new控制器中做。然后从那里,确保您的Courses模型,accepts_nested_attributes_for :sections然后您可以使用该函数填写Section视图中的字段。fields_for当您这样做时,您的控制器可以简单地说@course.save,并且Section将与它一起保存。

我希望这会有所帮助,但如果没有,请在您看到的错误中添加评论。

于 2013-01-11T05:21:19.417 回答