Команда, ища некоторую помощь для очень конкретной (новички) ситуации в Rails 4 ассоциации. У нас есть 3 модели:Rails 4 HABTM has_many: через
class Brand < ActiveRecord::Base
has_many :lines, dependent: :destroy
has_many :products, through: :lines, dependent: :destroy
end
class Line < ActiveRecord::Base
belongs_to :brand
has_and_belongs_to_many :products
end
class Product < ActiveRecord::Base
has_and_belongs_to_many :lines
has_many :brands, through: :lines
end
Эта конфигурация хорошо работает при попытке проверить Products
под конкретного Brand
(или Line
), и наоборот: разные Brands
(или Lines
) для конкретного Product
. Однако, когда дело доходит до удаления/уничтожения, возникает проблема. Мы получаем эту ошибку RSpec:
ActiveRecord::HasManyThroughCantAssociateThroughHasOneOrManyReflection:
Cannot modify association 'Brand#products' because the source reflection
class 'Product' is associated to 'Line' via :has_and_belongs_to_many.
Мы сделали исследование этого исключения, проверяется на Rails API, не повез, примеры, найденные показывают различную конфигурацию модели. Что отсутствует в этом подходе?
Цените свою помощь, ребята!
Как вы пытаетесь получить доступ? –
добавьте немного кода контроллера. –
Раньше я не видел хабтма на сквозном столе. Эта промежуточная модель обычно используется для отслеживания метаданных вокруг ассоциации между двумя другими моделями. Поэтому я предлагаю brand_product как сквозной стол и поддерживаю линию отдельно. – osman