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.