我在Rails文档here中注意到update_attributes
方法已被弃用:
在最新稳定版本的Rails上不推荐使用此方法。此处显示了最新的现有版本(v2.3.8)。
我很想知道它为何被弃用以及取而代之的是什么。
这对我来说并不是一件非常重要的事情,因为该方法在我的Rails 2.x应用程序中运行良好。但是,有一天我希望升级到Rails 3,我想开始掌握我需要改变的内容以及不同的方式。
答案 0 :(得分:9)
Apidock有点误导,实际上是“弃用或移动”;后者是真的,前者不是。 ActiveRecord::Base
包含ActiveRecord::Persistence
,它定义了#update_attributes。您可以在http://apidock.com/rails/ActiveRecord/Persistence/update_attributes上的apidock上查看此文档。
虽然现在也在ActiveResource中,但是没有update_attributes的共享实现,你不应该在那里寻找与ActiveRecord :: Base相关的文档,反之亦然。
答案 1 :(得分:2)
根据我的理解,它不会被弃用,而是从ActiveRecord提取到ActiveResource,如release notes中提到的3.0
答案 2 :(得分:2)
在Rails 6中,它变得过时了。原因在这里讨论:
解释是update_attributes和update_attributes!只是更新和更新的别名!多年以来,他们可能会感到困惑(由于其单一版本:update_attribute)。