Я получаю сообщение об ошибке:Невозможно записать неизвестный атрибут для has_many через источник с другим has_many к тому же таблице
ActiveModel::MissingAttributeError: can't write unknown attribute `[:account_id, :list_id]`
Модель:
class Account < ActiveRecord::Base
has_many :accounts_lists
has_many :subscriptions, -> {uniq}, :through => :accounts_lists, source: :list
has_many :lists, foreign_key: 'creator_id'
end
class List < ActiveRecord::Base
has_many :accounts_lists
has_many :subscribers, -> {uniq}, :through => :accounts_lists, source: :account
belongs_to :creator, class_name: 'Account'
end
class AccountsList < ActiveRecord::Base
self.primary_key = [:account_id, :list_id]
belongs_to :account
belongs_to :list
end
Я пытаюсь запустить метод семян и добавить список к учетной записи в следующих командах:
a = Account.create(email: 'email', password: 'secret', password_confirmation: 'secret')
list1 = List.create(creator: a, list_type: music, name: "a's list 1")
a.subscriptions << list1
Я изменил название типичного account.lists
для соединения «многие-ко-многим» из-за природы приложения. У учетной записи может быть множество списков, на которые она подписана, а также множество списков, которые она создала.
Я считаю, что от того, как будет сформулирована ошибка, то возникли проблемы с поиском правильного объединения, чтобы использовать для добавления List
на subscriptions
коллекции Account
.
Любые идеи?