HABTM与id的文本/隐藏字段的关系

时间:2014-10-20 15:12:02

标签: ruby-on-rails ruby-on-rails-4 many-to-many has-and-belongs-to-many

我正在与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

如有必要,我可以发布更多代码。

1 个答案:

答案 0 :(得分:0)

This answer为我工作。你必须

<% @participants.each do |participant| %>
    <% f.hidden_field 'participant_ids][', :value => participant.id %>
<% end %>