¿Es el método Rails update_attributes la mejor opción para hacer una actualización de un modelo en la base de datos?
-
20-08-2019 - |
Pregunta
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é no se hubiera preferido el método update
, especialmente porque se llama tan lógicamente.
Solución
La actualización toma un parámetro de objeto id
y un conjunto de atributos que de otro modo funcionarían como update_attributes
.
Entonces esto (de AWDWR 3rd edition )
Order.update(12, :name => "Barney", :email => "barney@bedrock.com")
es equivalente a
Order.find(12).update_attributes(:name => "Barney", :email => "barney@bedrock.com")
Entonces, si todo lo que quiere 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 update
: parece que esa es la razón por la que escribieron ¡
(¿Hay alguna manera de que su tutorial se actualice desde 1.1.6? Es bastante antiguo y no era una versión particularmente devastadora cuando era actual. 1.2.6 era mejor, el último de los 1. xs, si no recuerdo mal).
Otros consejos
Usando el método update_attributes solo suponga que ya tiene un objeto, y simplemente pasaría el conjunto de atributos. ¡Y el trabajo está hecho!