tag rails help guias form_with form_for collection basics ruby-on-rails rails-activerecord

ruby on rails - help - En el ActiveRecord de Rails, ¿para qué es el toque?



rails select tag (4)

Agregando a la respuesta de Ryan, no olvides usar el tacto en tus modelos así:

class Book < ActiveRecord::Base belongs_to :library, touch: true end

Ahora, cuando agrega un libro a la biblioteca, el tiempo de updated_at la biblioteca reflejará la hora en que se agregó el último libro. ¡Prima!

He oído que el ActiveRecord / ActiveModel de Rails tiene algo que se llama "toque". Sin embargo, no he encontrado nada que describa el propósito de esta funcionalidad.

¿Para qué sirve y para qué sirve?


En los rieles, el toque se usa para actualizar el campo updated_at para objetos persistentes. Pero si pasamos otros atributos como argumentos, actualizará esos campos también junto con updated_at . Incluso se actualizarán los campos que no sean de fecha y hora si se pasan como argumentos.

Por ejemplo

product.touch(:price) #price is an integer

actualizará updated_at del producto y establecerá el valor del precio como Time.now.to_i


Es útil si está utilizando un marco frontal como flujo (Alt / Redux) o haciendo llamadas asíncronas al servidor, para actualizar su modelo. En el caso de múltiples llamadas a la API realizadas a su servidor, lo usé para verificar primero el tiempo ''updated_at'' de un modelo antes de guardar o validar. A continuación, puede usar ''tocar'' para actualizar el campo ''updated_at'' en consecuencia.


Según la documentación de la API , es un método que solo actualiza las marcas de tiempo especificadas del modelo con la hora actual. Así que para actualizar el campo updated_at :

product.touch

o para actualizar los campos updated_at y designed_at :

product.touch(:designed_at)

Ahora, nunca he usado este método antes, pero creo que sería útil en una situación "golpear" una pregunta (como en Desbordamiento de pila) en la parte superior de una consulta de búsqueda sin cambiar realmente el contenido.