0

我有2个模型与HABTM关系:作者和出版物。Rails的simple_form关联没有保存到db

使用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 

如何我写这篇文章,这样的轨道可能会允许从authors表的关联(其中只有两个columns-- author_idname)进行过保存?

回答

0

添加author_id到PARAMS:

def publication_params 
    params.require(:publication).permit(:author_id, :publication_id, :name, :year_published, :month_published, :day_published, :citation, :source, :abstract) 
end 
+0

不幸的是,这似乎并不奏效。 – League14

+0

你可以在这里发布控制器中收到的参数吗? 你可以安装这个gem https://github.com/pry/pry 然后在控制器动作的开始处添加“binding.pry”,然后在服务器的日志中看到你可以评估参数 –

+0

'def publication_params params.require(:publication).permit(:publication_id,:author_id,:name,:year_published,:month_published,:day_published,:citation,:source,:abstract,) end' – League14

0

明白了!

我不得不将accepts_nested_attributes_for :authors, :journals添加到我的发布模型中。然后在我的publications_controller,我不得不改变我的PARAMS到:

def publication_params 
    params.require(:publication).permit(:publication_id, :name, :year_published, :month_published, :day_published, :citation, :source, :abstract, :author_ids => [], :journal_ids => []) 
end 

这让我新的关联保存到我的数据库,并正确更新了我的连接表。