1

私は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テーブルに存在する必要があります。

関連付けが存在しない場合に関連付けを作成する方法について何か考えはありますか?

4

1 に答える 1

1

あなたの関連付けは正しくありません。

ユーザー

has_many :user_projects
has_many :projects, :through => :user_projects

計画

has_many :user_projects, :dependent => :destroy 
has_many :users, :through => user_projects

ユーザープロジェクト

belongs_to :project 
belongs_to :user

上記のように関連付けを更新し、結果を投稿します。

于 2010-10-12T16:56:46.380 に答える