ruby-on-rails - HABTM 与 id 的文本/隐藏字段的关系

标签 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 在 View 中获取它们)和一个 ID 数组(例如 [1, 3])。我试过使用这样的文本字段,但它不保存数据:

<%= f.text_field :participant_ids %>

participant_ids 使用复选框保存并且我将它输出到显示 View 时,它是一个 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

我还修改了组 Controller 以使用像这样的强参数:

def group_params
    params.require(:group).permit(:user_id, :purpose, :participant_ids => [])
end

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

最佳答案

This answer为我工作。你将不得不

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

关于ruby-on-rails - HABTM 与 id 的文本/隐藏字段的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468988/

相关文章:

ruby-on-rails - Rails 4 - 连接查询匹配数组中的所有内容

ruby-on-rails - 如何在同一网页上对多个相关资源进行建模编辑?

ruby-on-rails - 使用 RAILS 对特殊字符进行 JSON 序列化和反序列化

ruby-on-rails - object_id 和 id 有什么区别?

java - 从两侧更新双向 ManyToMany

php - 多对多关系 Laravel 4

c# - 如何使用 Entity Framework Core 1.1 实现自引用多对多关系?

jquery - 如何从 js.erb View 中选择这个 div 元素

ruby-on-rails - Vagrant 和 guest 的 Gemfile 冲突

ruby-on-rails - 路由无法正常工作