ruby on rails - new - ¿Para qué se utiliza el atributo de método ActiveModel "_was"?
ruby on rails mvc (1)
Cuando uso la función de autocompletar en la consola, a menudo veo " _was
" postpendido en mis atributos. Pero no puedo encontrar ninguna documentación o mejores prácticas para el uso. ¿Qué hace y cómo debe usarse?
Ejemplo: user.fname
tiene el método user.fname_was
Utilizando source_location, lo he rastreado a: active_model / attribute_methods.rb ", línea 296 pero no hay nada específico.
Eso es parte de ActiveModel :: Dirty Puede verlo aquí https://github.com/rails/rails/blob/af64ac4e5ce8406137d5520fa88e8f652ab703e9/activemodel/lib/active_model/dirty.rb#L146 Ejemplo
person = Person.find_by_name(''Uncle Bob'')
person.changed? # => false
Cambiar el nombre:
person.name = ''Bob''
person.changed? # => true
person.name_changed? # => true
#method _was return prev attribute value
person.name_was # => ''Uncle Bob''
person.name_change # => [''Uncle Bob'', ''Bob'']
person.name = ''Bill''
person.name_change # => [''Uncle Bob'', ''Bill'']