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
更新模型的方法,如上面列出的我的 Controller 中的示例代码。查看 Rails 文档我想知道为什么 update
方法不会是首选,特别是因为它的命名如此合乎逻辑。
最佳答案
更新需要一个对象 id
参数和一组属性,否则会像 update_attributes
.
所以这个(来自AWDWR 3rd edition)
Order.update(12, :name => "Barney", :email => "barney@bedrock.com")
相当于
Order.find(12).update_attributes(:name => "Barney", :email => "barney@bedrock.com")
因此,如果您只想使用一组属性更新一行已知 id,那么我会说没有理由不使用
update
- 看起来这就是他们写它的原因!(有什么方法可以让你的教程从 1.1.6 升级?它已经很老了,而且在当时并不是一个特别惊天动地的版本。1.2.6 更好 - 1.xs 中的最后一个,如果我没记错)。
关于ruby-on-rails - Rails update_attributes 方法是更新数据库中模型的最佳选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/840199/