Este método:Cuándo utilizar 'yo' en Ruby
def format_stations_and_date
from_station.titelize! if from_station.respond_to?(:titleize!)
to_station.titleize! if to_station.respond_to?(:titleize!)
if date.respond_to?(:to_date)
date = date.to_date
end
end
produce este error cuando date
es nula:
NoMethodError (You have a nil object when you didn't expect it!
The error occurred while evaluating nil.to_date):
app/models/schedule.rb:87:in `format_stations_and_date'
app/controllers/schedules_controller.rb:15:in `show'
Sin embargo, si cambio date = date.to_date
a self.date = self.date.to_date
, el método funciona correctamente .
¿Qué está pasando? En general, ¿cuándo debo escribir self
?
Editar: No se relaciona con la pregunta, pero tenga en cuenta que no hay "titleize!" método.
posible duplicado de [¿Por qué los setters ruby necesitan "self"? calificación dentro de la clase?] (http://stackoverflow.com/questions/44715/why-do-ruby-setters-need-self-qualification-within-the-class) –