Rails simple_form关联不保存到db

时间:2017-08-07 19:33:28

标签: ruby-on-rails associations simple-form has-and-belongs-to-many whitelist

我有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_idname)的关联?

2 个答案:

答案 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