Tengo un objeto Ruby (un objeto ActiveRecord, específicamente) llamado User
. Responde a métodos como find_by_id
, find_by_auth_token
, etc. Sin embargo, estos no son métodos que se definen a través de def
o define_method
. En cambio, son métodos dinámicos que se manejan a través del method_missing
.Método de Object # y respondedores dinámicos
me gustaría obtener una referencia a uno de estos métodos a través de Object#method
, por ejemplo .:
User.method(:find_by_auth_token)
No se ve como esto funciona sin embargo. La mejor solución que he llegado con es:
proc { |token| User.find_by_auth_token(token) }
¿Hay alguna otra manera alrededor usando un método tal como envoltorio esto? ¿Realmente no puedo usar Object#method
para métodos dinámicos?
Para cualquier persona que se topa con esto en el futuro, estos métodos de búsqueda dinámicos quedará obsoleta en Rails 4.0. Personalmente, me mantendría cauteloso al agregar funcionalidad adicional sobre ellos. https://github.com/rails/activerecord-deprecated_finders –