我可以使用模块#prepend而不是alias_method_chain来修补这个问题吗?

时间:2015-08-17 17:41:18

标签: ruby-on-rails ruby monkeypatching alias-method-chain

我正在修补concern in the Devise Token Auth gem

我让它与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

1 个答案:

答案 0 :(得分:0)

你可以尝试

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
)