Я работаю с Spree 2.1 и пытаюсь добавить новый шлюз платежей, но эта ошибка более общая, поэтому сама Spree здесь не так важна.undefined method `association_class 'для nil: NilClass
Я сталкивался с этой ошибкой (undefined method 'association_class' for nil:NilClass
) после добавления некоторого модуля к Spree::PaymentMethod
(source) класса:
гулянки/payment_method_decorator.rb
Spree::PaymentMethod.class_eval do
include Spree::Core::CalculatedAdjustments
end
(Spree::Core::CalculatedAdjustments
source)
(Spree::Gateway
source)
К сожалению, в настоящее время Spree::PaymentMethod
(source) разбивает мало, то есть:
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 не должен будет тратить на это еще несколько часов.
Вы исправить это? – brauliobo
Что вы сделали, чтобы исправить это? Можете ли вы ответить на свой вопрос? Я столкнулся с той же проблемой. – maikel
@maikel жаль позднего ответа, мне пришлось копать мой старый ноутбук для этого проекта;) Я написал ответ ниже. – zrl3dx