覆盖方法 Ruby
Override method Ruby
我想覆盖方法:authorize_endpoint_url
来自 Rails 应用程序中的 Gem: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
但这种方法似乎不起作用,实际上什么都没有被覆盖。我做错了什么?谢谢
编写 "monkey patch" 样式更改时,您需要确保正确加载它们。测试这一点的一种方法是,在说完一切之后,询问 Ruby 以找出实际使用的是哪种方法:
OmniAuth::Strategies::AzureActiveDirectory.instance_method(:request_phase).source_location
instance_method
调用 returns 一个对象,其中包含有关该方法的信息,source_location
属性 告诉您该对象的定义位置。
如果这是你的方法,太好了,你加载正确了。如果不是,您可能需要检查是否在正确的时间挂机。
我想覆盖方法:authorize_endpoint_url
来自 Rails 应用程序中的 Gem: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
但这种方法似乎不起作用,实际上什么都没有被覆盖。我做错了什么?谢谢
编写 "monkey patch" 样式更改时,您需要确保正确加载它们。测试这一点的一种方法是,在说完一切之后,询问 Ruby 以找出实际使用的是哪种方法:
OmniAuth::Strategies::AzureActiveDirectory.instance_method(:request_phase).source_location
instance_method
调用 returns 一个对象,其中包含有关该方法的信息,source_location
属性 告诉您该对象的定义位置。
如果这是你的方法,太好了,你加载正确了。如果不是,您可能需要检查是否在正确的时间挂机。