#ruby-on-rails #ruby #spree #state-machine
Вопрос:
Я написал заказ декоратору, app/models/spree/order_decorator.rb
:
module Spree module OrderDecorator def self.prepended(base) base.whitelisted_ransackable_attributes = %w[synced_with_erp] end def update_user_was_purchased user.update_column(:was_purchase, true) if user end end end ::Spree::Order.prepend Spree::OrderDecorator if ::Spree::Order.included_modules.exclude?(Spree::OrderDecorator) Spree::Order.state_machine.after_transition to: :complete, do: :update_user_was_purchased
Когда я запускаю этот код в консоли разработки:
Spree::Order.state_machine.callbacks[:after].find { |callback| callback.instance_variable_get("@methods").include?(:update_user_was_purchased) }
он возвращает объект обратного вызова, как и ожидалось.
Однако, когда я запускаю его в консоли на рабочем сервере , он возвращается nil
, и, следовательно, он не работает.