activeadmin控制器,用于将数据存储在另一个表轨道4中

时间:2014-03-21 07:35:51

标签: ruby-on-rails activeadmin

我有两个模型Session和Speaker。这里有一个Session可能有很多演讲者,一个演讲者可能在很多会话中发言,所以我使用了has_many关系,我的模型看起来像这样

类演讲者<的ActiveRecord ::基

has_many :session_speakers
has_many :sessions, :through => :session_speakers

课程会议<的ActiveRecord ::基

has_many :session_speakers
has_many :speakers, :through => :session_speakers 

并且连接表是

类SessionSpeaker<的ActiveRecord ::基

belongs_to:session
   belongs_to:发言人

问题是当我在会话形式中选择多个扬声器时扬声器被存储在控制台的连接表中它显示未允许的参数:speaker_ids。

我在activeadmin中的会话控制器是这样的

ActiveAdmin.register会话 permit_params:speaker_ids,:title,:summary,:session_code,:session_type,:time_start_date,:time_start_time_hour,:time_start_time_minute,:time_end_date,:time_end_time_hour,:time_end_time_minute,:event_year_date,:event_year_time_hour,:event_year_time_minute

请帮我解决这个问题。 如何将商店扬声器详细信息添加到连接表

感谢。

1 个答案:

答案 0 :(得分:0)

要声明params中的值必须是允许的标量值数组,请将键映射到空数组:

尝试使用speaker_ids: []

ActiveAdmin.register Session do
  permit_params :title, :summary, :session_code, :session_type, :time_start_date, :time_start_time_hour, :time_start_time_minute, :time_end_date, :time_end_time_hour, :time_end_time_minute, :event_year_date, :event_year_time_hour, :event_year_time_minute, speaker_ids: []
end