我有以下型号
class Course < ActiveRecord::Base
has_many :syllabuses, dependent: :destroy
has_many :topics, through: :syllabuses
end
class Topic < ActiveRecord::Base
has_many :syllabuses, dependent: :destroy
has_many :courses, through: :syllabuses
end
class Syllabus < ActiveRecord::Base
belongs_to :course
belongs_to :topic
end
我在[{1}}
中使用嵌套在topic
中的course
现在,在保存新的routes
时,以下代码可以正常运行: -
topic
这不是
@course = Course.find(params[:course_id])
@topic = @course.topics.create(topic_params)
新的@course = Course.find(params[:course_id])
@topic = @course.topics.new(topic_params)
@topic.save
已保存,但topic
中未保存任何关联,我想我可能需要在此处使用syllabus
功能,有人可以帮忙吗?
答案 0 :(得分:0)
您有两种解决方案:
选项1
保存@course
对象而不是@topic
对象。新创建的topic
关联将插入到syllabuses
表中。所以你会这样做:
@course = Course.find(params[:course_id])
@topic = @course.topics.new(topic_params)
@course.save
选项2
以不同的方式创建关联主题,如下所示:
@topic = Topic.new(topic_params)
@topic.courses << @course
@topic.save
注意:我从this previous answer
获得了一些信息