我有2个具有HABTM关系的模型:作者和出版物。
使用simple_form,我能够创建一个add new publication
表单,将所有可能的作者显示为复选框。但是,这些关联不会保存到我的数据库中。
我知道这是一个params许可证问题,但我不确定如何正确编写它。目前我有:
def publication_params
params.require(:publication).permit(:publication_id, :name, :year_published, :month_published, :day_published, :citation, :source, :abstract)
end
如何编写这个,以便rails可以允许来自authors表(只有两列_ author_id
和name
)的关联?
答案 0 :(得分:1)
知道了!
我必须在我的出版物模型中添加accepts_nested_attributes_for :authors, :journals
。然后在我的publications_controller中,我不得不将我的参数更改为:
def publication_params
params.require(:publication).permit(:publication_id, :name, :year_published, :month_published, :day_published, :citation, :source, :abstract, :author_ids => [], :journal_ids => [])
end
这允许我将新关联保存到我的数据库,并且它正确更新了我的连接表。
答案 1 :(得分:0)
将author_id
添加到参数:
def publication_params
params.require(:publication).permit(:author_id, :publication_id, :name, :year_published, :month_published, :day_published, :citation, :source, :abstract)
end