我有两个模型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
端
请帮我解决这个问题。 如何将商店扬声器详细信息添加到连接表
感谢。
答案 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