Rails -在两个相关模型对象之间创建项目时分配外部id



在创建"多"模型对象之一时,我在一对多关系中成功分配外键时遇到困难。

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

我想写一个叫做current_course的辅助方法,这样当我写我的create函数时,我可以写current_course.sections.build(params[:section]),它会在创建时自动分配外键course_id。换句话说,current_course将获取它被点击的类的id(即/class/1/),并使其等于新创建部分的course_id。我沿着@current_course ||= Course.find(params[:course_id])的路线尝试过。但它在创建时一直抛出ID错误。我做错了什么,我如何纠正我的current_course方法?谢谢!

你所做的看起来基本正确。

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

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

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

我希望这对你有帮助,但如果没有,那么请添加一个注释,你看到的错误

相关内容

  • 没有找到相关文章

最新更新