Spree Rails HasManyThroughOrderError для предварительно созданного has_many в декораторе

У меня проблемы с декоратором продукта при обновлении с spree 3.2.1 до 3.4.5. Я использую драгоценный камень spree_drop_ship, и он приносит отношения для продукта и поставщика через основной вариант продукта.

Rails не принимает это и выдает мне HasManyThroughOrderError. Я получаю сообщение:

Не может иметь has_many: через ассоциацию "Spree::Supplier#products", которая проходит через "Spree:: Supplier # варианты" до определения сквозной ассоциации.

Этот код, как показано здесь: https://github.com/spree-contrib/spree_drop_ship/blob/master/app/models/spree/product_decorator.rb

module Dropship
  module Spree
    module ProductDecorator
      def self.prepended(base)
        base.has_many :suppliers, through: :master
      end
    end
  end 
end
Spree::Product.prepend Dropship::Spree::ProductDecorator

Отношение продукта к основному варианту устанавливается в исходном файле product.rb. Кажется, это работает для других отношений. Как я могу гарантировать, что это отношение поставщика через мастера определено ПОСЛЕ оригинала?

Заранее спасибо.

0 ответов

Другие вопросы по тегам