Sé que self
es la instancia dentro de un método de instancia. Entonces, ¿es self
la clase dentro de un método de clase? Por ejemplo, ¿funcionará lo siguiente en Rails?En Ruby, dentro de un método de clase, ¿es la clase o una instancia?
class Post < ActiveRecord::Base
def self.cool_post
self.find_by_name("cool")
end
end
Y para agregar a las respuestas a continuación, ya que el rubí siempre evaluará el receptor como auto menos que se especifique, el código anterior se puede simplemente llamar 'find_by_name 'sin ti mismo :) – brad
Gracias, ¿hay casos en los que sea una buena idea especificar' self'? ¿Es 'self.find_by_name' el primer lugar en el que Ruby buscará' find_by_name'? ¿Se ve en otro lado? ¿Qué tal un método definido globalmente (un método definido en el archivo fuera de una clase)? – ma11hew28
Lo probé. Parece que el orden de precedencia es el método de clase y luego el método globalmente definido si no se encuentra ningún método de clase. – ma11hew28