Могу ли я использовать module#prepend вместо alias_method_chain, чтобы исправить эту проблему?

Я исправляю проблему в токене Devise. Драгоценный камень аутентификации.

У меня он работает с alias_method_chain, но мне интересно, могу ли я использовать вместо него module#prepend в этом сценарии?

Примечание. Мы работаем на ruby ​​2.2.x.

Существующий:

DeviseTokenAuth::Concerns::User.module_eval do
  def token_validation_response_with_customer_info
    json = token_validation_response_without_customer_info
    # add some customer stuff based on has_role? check
    json
  end

  alias_method_chain :token_validation_response, :customer_info
end

person blu    schedule 17.08.2015    source источник
comment
У меня не установлен ActiveSupport, иначе я бы сделал это сам, но… почему бы вам просто не сделать это и посмотреть, работает ли это?   -  person Jörg W Mittag    schedule 17.08.2015
comment
Я столкнулся с этой проблемой alias_method_chain при попытке использовать Devise. Вы когда-нибудь пытались исправить это?   -  person sivanes    schedule 12.10.2015


Ответы (1)


Можешь попробовать

DeviseTokenAuth::Concerns::User.prepend(
  Module.new do
    def token_validation_response
      json = super
      # add some customer stuff based on has_role? check
      json
    end
  end
)
person Roman Usherenko    schedule 21.01.2016