我想覆盖方法:在 Rails 应用程序中从 Gem authorize_endpoint_url
:https://github.com/AzureAD/omniauth-azure-activedirectory/blob/master/lib/omniauth/strategies/azure_activedirectory.rb
我试图通过向config/initializers/oauth.rb
添加一个文件来做到这一点
使用代码:
module OmniAuth
module Strategies
# A strategy for authentication against Azure Active Directory.
class AzureActiveDirectory
def request_phase
debugger
"www.hans.com"
end
end
end
end
但是这种方法似乎不起作用,实际上什么都没有被覆盖。我做错了什么?谢谢
在编写"猴子补丁"样式更改时,您需要确保它们正确加载。测试这一点的一种方法是,在说完之后,询问 Ruby 以找出实际使用的方法:
OmniAuth::Strategies::AzureActiveDirectory.instance_method(:request_phase).source_location
instance_method
调用返回一个对象,其中包含有关该方法的信息,source_location
属性告诉您定义该方法的位置。
如果 if 是你的方法,太好了,你加载正确。如果没有,您可能需要检查您是否在正确的时间挂入。