Ruby 你有什么反应?不';不要检查单例类
我试图在实例上定义一个方法,然后获取Ruby 你有什么反应?不';不要检查单例类,ruby,Ruby,我试图在实例上定义一个方法,然后获取respond\u to?以返回true。为什么这样不行 user = User.new user.define_singleton_method(:email) do "some email" end # This works user.email #=> "some email" # I would have expected this to return true user.respond_to?(:email) #=> false
respond\u to?
以返回true
。为什么这样不行
user = User.new
user.define_singleton_method(:email) do
"some email"
end
# This works
user.email #=> "some email"
# I would have expected this to return true
user.respond_to?(:email) #=> false
有没有办法在单个实例上定义一个方法,并让它正确响应respond\u to?
更新:结果是RubyonRails的问题。RoR为您提供了不同的响应?对于活动记录模型。这对我来说在Ruby 2.3.7上运行良好
class User
end
user = User.new
user.define_singleton_method(:email) do
"some email"
end
# This works
puts user.email #=> "some email"
#This works too
puts user.respond_to?(:email) #=> true
方法已定义并存在于公共方法列表中。
无法复制。这是什么红宝石?和2.5.3Ah一样。我现在明白了。RubyonRails提供了一种不同的响应方式?。谢谢你的核实。