A lo largo de mi aplicación self.
no es necesario hacer referencia al nombre de un usuario. name
funciona bien.¿Por qué usar "self" para acceder a las propiedades del modelo ActiveRecord/Rails?
¿Por qué el siguiente código requiere self
para funcionar como se esperaba?
class User< ActiveRecord::Base
before_save :validate_name
def validate_name
if self.name.nil? || self.name.empty?
self.name= "Mr. No Name"
end
end
Por cierto, sé que validates_presence_of
se pueden utilizar para prevenir el salve, pero quiero ahorrar con un defecto si no se da nombre.
Rails 3.0.7.
Lo sentimos, 'self.day' se suponía que era' self.name'! Actualicé la pregunta. –
Nit: Ruby nunca tomará 'x = y' para ser una llamada a método. Siempre es una asignación de variable directa (o constante, según el caso). La forma 'x' (como expresión) depende de si existe tal 'x' en el alcance (como una variable) o no. –
Si 'name' y' name = 'se agregan dinámicamente después de analizar el archivo de clase, ¿hay momentos en que' name' significa 'self.name' y otras veces cuando' name' es una variable local? –