Rails has_many через сбой при создании метода - PullRequest
1 голос
/ 12 октября 2010

У меня есть 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 должна существовать запись, чтобы она могла работать.

Есть идеи о том, как создать ассоциацию, если она не существует?

1 Ответ

1 голос
/ 12 октября 2010

Ваши ассоциации неверны.

Пользователь

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

Обновите ваши ассоциации, как указано выше, и опубликуйте результаты.

...