respond_to?не проверяет синглтон-класс - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь определить метод для экземпляра, а затем получить respond_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_to?

Обновление: Оказалось, проблема с Ruby on Rails.RoR предоставляет другое откликается?для моделей Active Record.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Метод определен и существует в открытом списке методов.https://repl.it/repls/UnluckySpiffyPaint

0 голосов
/ 07 декабря 2018

Это нормально работает с 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...