Я работаю с Spree 2.1 и пытаюсь добавить новый платежный шлюз, но эта ошибка более общая, поэтому сам Spree здесь не так важен.
Я столкнулся с этой ошибкой (undefined method 'association_class' for nil:NilClass
) после добавления некоторого модуля в Spree::PaymentMethod
(исходный):
веселье/payment_method_decorator.rb
Spree::PaymentMethod.class_eval do
include Spree::Core::CalculatedAdjustments
end
(Spree::Core::CalculatedAdjustments
источник)
(Spree::Gateway
источник)
К сожалению, сейчас Spree::PaymentMethod
(источник) немного ломается, т.е.
n = Spree::PaymentMethod.first
=> #<Spree::Gateway::Bogus id: 1, (...)>
n.save
=> undefined method 'association_class' for nil:NilClass
n.calculator
=> undefined method 'association_class' for nil:NilClass
Кто-нибудь знает, почему это происходит и как это исправить?
На самом деле у меня уже есть ответ (после нескольких часов борьбы), но, возможно, кто-то даст лучший ответ с надлежащим объяснением. Возможно, ответ вполне очевиден, но это было не для меня, и я не смог найти ничего, связанного с SO, поэтому, надеюсь, кому-то другому с таким же уровнем знаний RoR не придется тратить на это еще несколько часов.