2013-11-18 2 views
1

Я работаю с 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::CalculatedAdjustmentssource)

(Spree::Gatewaysource)

К сожалению, в настоящее время 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 не должен будет тратить на это еще несколько часов.

+0

Вы исправить это? – brauliobo

+0

Что вы сделали, чтобы исправить это? Можете ли вы ответить на свой вопрос? Я столкнулся с той же проблемой. – maikel

+0

@maikel жаль позднего ответа, мне пришлось копать мой старый ноутбук для этого проекта;) Я написал ответ ниже. – zrl3dx

ответ

0

Таким образом, ответ был:

Как видно на ссылки выше, Spree::Gateway наследуется от Spree::PaymentMethod и мой метод пользовательский платеж был унаследовать от Spree::Gateway класса - что-то вроде:

module Spree class Gateway::CustomMethod < Gateway end end

All Я должен был сделать, чтобы включить Spree::Core::CalculatedAdjustments в Spree::Gateway:

Spree::Gateway.class_eval do include Spree::Core::CalculatedAdjustments end

и он работает с тех пор.

 Смежные вопросы

  • Нет связанных вопросов^_^