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提供了一种不同的响应方式?。谢谢你的核实。