我有 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 :remark_users
end
以及关系:
class RemarkUser < ActiveRecord::Base
belongs_to :remark
belongs_to :user
end
在备注控制器中,我有这个:
def add_user
@remark = Remark.find(params[:id])
3.times { @remark.remark_users.build }
end
一个评论可以关联许多用户。关联必须在创建备注之后进行,因为它必须首先通过验证。
所以我想在验证后将用户添加到评论中。无论如何,我下面的表单没有显示任何用于选择用户的字段,只显示了备注数据。
<p>
<strong>Description:</strong>
<%= @remark.description %>
</p>
<h4>Add Users</h4>
<% form_for @remark do |f| %>
<% f.fields_for :@designated_user do |u| %>
<p>User:<br />
<%= u.collection_select(:user_id, User.all, :id, :user_name, {:include_blank => true}, {:class=>'form-control'}) %>
</p>
<% end %>
<% end %>
谁能帮我?谢谢!