我正在与Rails创建一个has_and_belongs_to_many关系。每个小组都有很多参与者,每个参与者都可以成为许多小组的一部分。
关系似乎设置正常,因为我可以使用复选框在我的表单中添加关系:
<%= collection_check_boxes(:group, :participant_ids, @participants, :id, :name) %>
但是,我需要使用隐藏字段来提交这些关系(我使用AJAX在视图中获取它们)和一组id(例如[1, 3]
)。我尝试使用这样的文本字段,但它不保存数据:
<%= f.text_field :participant_ids %>
当participant_ids
使用复选框保存并且我在show视图中输出它时,它是一个id数组,但我似乎无法以该格式提交它。
为什么我无法使用文字/隐藏字段提交participant_ids
,是否可以解决此问题?
作为参考,我已经设置了连接表,模型如下所示:
class Group < ActiveRecord::Base
has_and_belongs_to_many :participants
end
class Participant < ActiveRecord::Base
has_and_belongs_to_many :groups
end
我还修改了组控制器以使用如下的强参数:
def group_params
params.require(:group).permit(:user_id, :purpose, :participant_ids => [])
end
如有必要,我可以发布更多代码。
答案 0 :(得分:0)
This answer为我工作。你必须
<% @participants.each do |participant| %>
<% f.hidden_field 'participant_ids][', :value => participant.id %>
<% end %>