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

pez*_*ser 17 controller model ruby-on-rails updatemodel 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
Run Code Online (Sandbox Code Playgroud)

我正在讨论的Rails 1.1.6教程建议使用update_attributes更新模型的方法,如上面列出的控制器的示例代码中所示.看看Rails文档,我想知道为什么这个update方法不是首选,特别是因为它的逻辑命名.

Mik*_*use 26

Update接受一个对象id参数和一组其他工作方式的属性update_attributes.

所以这(来自AWDWR第3版)

Order.update(12, :name => "Barney", :email => "barney@bedrock.com")
Run Code Online (Sandbox Code Playgroud)

相当于

Order.find(12).update_attributes(:name => "Barney", :email => "barney@bedrock.com")
Run Code Online (Sandbox Code Playgroud)

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

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