我有3个型号:
User
has_many :user_projects
has_many :projects, :through => :user_projects
Project
has_many :user_projects, :dependent => :destroy
has_many :users, :through => :user_projects, :uniq => true
UserProject
belongs_to :project
belongs_to :user
然后我有一个允许创建新项目的表单,并可以将用户分配给它。
表格是:
<% form_for(@project, :html => { :id => 'project_create'}) do |f| %>
<%= f.label :name, 'Project Name' %>
<% @users.each do |user| %>
<%= user.username %>: <%= check_box_tag("project[user_project_ids][]",user.id) %>
<% end %>
<% end %>
但是,出于某种原因,UserProject
表中必须存在一条记录才能生效。
如果不存在关联如何创建关联?
答案 0 :(得分:1)
您的关联不正确。
用户
has_many :user_projects
has_many :projects, :through => :user_projects
项目
has_many :user_projects, :dependent => :destroy
has_many :users, :through => user_projects
UserProject
belongs_to :project
belongs_to :user
按上述方式更新您的关联并发布结果。