【发布时间】:2013-11-24 06:58:03
【问题描述】:
我有 2 个具有多对多关联的模型,如下所示:
class User < ActiveRecord::Base
has_many :remark_users, :dependent => :destroy
has_many :designated_remarks, :through => :remark_users, :source => :remark
end
class Remark < ActiveRecord::Base
has_many :remark_users, :dependent => :destroy
has_many :users, :through => :remark_users
accepts_nested_attributes_for :users
end
和关系:
class RemarkUser < ActiveRecord::Base
belongs_to :remark
belongs_to :user
end
应该执行保存的remarks_controller 操作:
# PATCH Save users
def save_users
@remark = Remark.find(params[:id])
@remark.users.build(params[:remark_user_ids])
@remark.save
end
还有形式:
<%= form_for @remark, :url => salveaza_responsabili_remark_path(@remark) do |f| %>
<% @users.each do |user| %>
<%= check_box_tag 'remark[remark_user_ids][]', user.id, @remark.users.include?(user) %>
<%= user.name %>
<% end %>
<%= hidden_field_tag 'remark[remark_user_ids][]', '' %>
<% end %>
备注控制器:
params.require(:remark).permit(:description, :suggestion, :origin_details, process_type_id, :origin_id, :remark_user_ids)
用户和备注都已经存在,我需要一个表单来创建关联,最好使用复选框。
在控制台中,关联被保存。但我花了最后一天试图让它在浏览器中工作。我已经阅读了所有关于这个问题的信息,我现在很困惑。
有人能告诉我实际的表单应该是什么样子吗,以及是否需要在控制器中添加任何其他内容?
【问题讨论】:
-
你收到
@remark.users #=> []? -
我不确定你的意思。你能解释一下吗?我是新来的轨道。谢谢!
标签: ruby-on-rails has-many-through has-many strong-parameters