我有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
在remarks_controller中,我有这个:
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 %>
任何人都可以帮助我吗? 谢谢!