has_many через сборку - PullRequest
       31

has_many через сборку

3 голосов
/ 12 августа 2011

У меня две модели. Пользователь и учетная запись следующим образом

class Account < ActiveRecord::Base
  has_many :manages
  has_many :users, :through => :manages
end

class User < ActiveRecord::Base
  has_many :manages
  has_many :accounts, :through => :manages
end

Если бы я использовал консоль rails и создал экземпляр учетной записи

acc = usr.accounts.build
acc.save

Следующая команда вернет созданный экземпляр учетной записи

usr.accounts

Но следующая команда не вернет пользовательский экземпляр

acc.users

Кроме того, когда я смотрю на таблицу соединений, запись не создается. Чего здесь не хватает? Я подумал, используя метод сборки, что он автоматически создает запись модели соединения.

Ответы [ 2 ]

2 голосов
/ 26 мая 2012

Попробуйте вместо этого сохранить объект пользователя.

acc = usr.accounts.build
usr.save
1 голос
/ 15 марта 2012

Вы получите полный отчет об ошибке, если вы используете .save! вместо .save

Использование has_many: через пожалуйста, попробуйте добавить модель

class Manage < ActiveRecord::Base
  belongs_to :user
  belongs_to :account
end
...