Почему ActiveRecord :: Base # update_attributes устарела? - PullRequest
6 голосов
/ 25 апреля 2011

Я заметил в документации по Rails здесь , что метод update_attributes устарел:

Этот метод устарел в последней стабильной версии Rails.Последняя существующая версия (v2.3.8) показана здесь.

Мне любопытно узнать, почему она устарела и что является предпочтительным вместо нее.

Это не такдля меня сейчас огромное значение, так как метод отлично работает в моих приложениях на Rails 2.x.Однако в преддверии обновления до Rails 3 однажды я хотел бы начать понимать, что мне нужно изменить и как все по-другому.

Ответы [ 3 ]

9 голосов
/ 14 марта 2012

Apidock немного вводит в заблуждение, на самом деле он говорит "устарел или перенесен";последнее верно, первое нет.ActiveRecord::Base включает ActiveRecord::Persistence, который определяет #update_attributes.Вы можете просмотреть документацию по этому вопросу на apidock по адресу http://apidock.com/rails/ActiveRecord/Persistence/update_attributes.

. Хотя это также находится в ActiveResource, нет общей реализации update_attributes, и вам не следует искать там документацию, связанную с ActiveRecord :: Base,или наоборот.

2 голосов
/ 08 февраля 2019

В Rails 6 это стало действительно устаревшим.Причины обсуждались здесь:

https://github.com/rails/rails/pull/31998

Объяснение заключается в том, что как update_attributes, так и update_attributes!просто псевдоним для обновления и обновления!годами, и они могут показаться странными (из-за их единственной версии: update_attribute).

2 голосов
/ 30 апреля 2011

Насколько я понимаю, это не устарело, оно было извлечено из ActiveRecord и в ActiveResource , как упомянуто в примечаниях к выпуску для 3.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...