def update
@album = Album.find(params[:id])
if @album.update_attributes(params[:album])
redirect_to(:action=>'list')
else
render(:action=>'edit')
end
end
私がカバーしているRails 1.1.6チュートリアルでは、上記のコントローラーのサンプルコードのように、モデルを更新するためにupdate_attributes
メソッドを使用することをお勧めします。 Railsのドキュメントを見ると、特に論理的に名前が付けられているため、なぜupdate
メソッドが好まれなかったのか疑問に思います。
Updateは、オブジェクトid
パラメーターとupdate_attributes
。
だからこれ( AWDWR第3版 から)
Order.update(12, :name => "Barney", :email => "[email protected]")
と同等です
Order.find(12).update_attributes(:name => "Barney", :email => "[email protected]")
したがって、既知のIDの行を属性のセットで更新するだけの場合は、update
を使用しない理由はないと思います。それが彼らが書いた理由のようです。
(チュートリアルを1.1.6からアップグレードする方法はありますか?それはかなり古く、現在のリリースでは特に驚異的なリリースではありませんでした。1.2.6の方が優れていました-1.xsの最後の場合私は正しく覚えています)。
Update_attributesメソッドを使用すると、オブジェクトが既に存在し、属性のセットを渡すだけであると想定します。そして、作業は完了です!