我注意到这里的Rails文档中不推荐使用update_attributes
方法:
此方法在最新的稳定版本的Rails上已弃用。最后一个现有版本(v2.3.8)显示在这里。
我很想知道为什么它被弃用了,用什么代替它。
这对我来说不是一个巨大的后果,因为这个方法在我的Rails 2中工作得很好。x应用程序。然而,考虑到有一天要升级到Rails 3,我想开始掌握一下需要改变的地方,以及如何以不同的方式完成工作。
Apidock有点误导人,它实际上说的是"deprecated or moved";后者是真的,前者不是。ActiveRecord::Base
包括ActiveRecord::Persistence
,其中定义了#update_attributes。您可以在apidock的http://apidock.com/rails/ActiveRecord/Persistence/update_attributes上查看相关文档。
虽然它现在也在ActiveResource中,但没有共享的update_attributes实现,并且您不应该在那里查找与ActiveRecord:: base相关的文档,反之亦然。
在Rails 6中它真的被弃用了。这里讨论了原因:
https://github.com/rails/rails/pull/31998
解释是update_attributes和update_attributes!只是更新和更新的别名!多年来,它们可能听起来令人困惑(因为它们的单一版本:update_attribute)。