ruby on rails - parciales - ¿Es el método de Rails update_attributes la mejor opción para hacer una actualización de un modelo en la base de datos?
parciales en rails (2)
def update
@album = Album.find(params[:id])
if @album.update_attributes(params[:album])
redirect_to(:action=>''list'')
else
render(:action=>''edit'')
end
end
Un tutorial de Rails 1.1.6 que estoy cubriendo recomienda usar el método update_attributes
para actualizar un modelo, como en el código de ejemplo de mi controlador mencionado anteriormente. En cuanto a la documentación de Rails, me pregunto por qué el método de update
no habría sido el preferido, especialmente porque su nombre es tan lógico.
La actualización toma un parámetro de id
objeto y un conjunto de atributos que, de lo contrario, funcionan como update_attributes
.
Así que esto (de la tercera edición de AWDWR )
Order.update(12, :name => "Barney", :email => "[email protected]")
es equivalente a
Order.find(12).update_attributes(:name => "Barney", :email => "[email protected]")
Entonces, si todo lo que quieres hacer es actualizar una fila de identificación conocida con un conjunto de atributos, entonces diría que no hay razón para no usar la update
. ¡Parece que esa es la razón por la que la escribieron!
(¿Hay alguna forma en la que puedas hacer que tu tutorial se actualice desde la versión 1.1.6? Es bastante antiguo y no fue una versión particularmente devastadora cuando estaba vigente. 1.2.6 era mejor: la última versión de 1.xs, si Recuerdo correctamente).
Usando el método update_attributes solo suponga que ya tiene un objeto y que simplemente pasaría el conjunto de atributos. ¡Y el trabajo está hecho!