Rails update_attributes方法是否是在数据库中更新模型的最佳选择?

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 => "barney@bedrock.com") 

相当于

 Order.find(12).update_attributes(:name => "Barney", :email => "barney@bedrock.com") 

所以如果你想要做的就是用一组属性更新一行已知的id,那么我就说没有理由不使用update – 看起来这就是他们编写它的原因!

(有没有什么方法可以让你的教程从1.1.6升级?它已经很老了,当它是最新的时候并不是特别惊天动地的版本.1.2.6更好 – 最后的1.xs,如果我没记错。)

使用update_attributes方法只是假设您已经有一个对象,并且您只需传递一组属性。 工作完成了!