Есть ли в Rails метод обновления CLEAN? - PullRequest
1 голос
/ 25 апреля 2011

Одна вещь, которая заставляет меня биться головой о стену в Rails, это ее нечистый способ сохранения отдельных атрибутов обратно в модель. Или, по крайней мере, мое понимание этого.

Из того, что я знаю, самый близкий метод, который делает это update_attribute (который сейчас устарел?). Однако это имеет большой недостаток. Выполняет обновление всех полей модели.

Если я ошибаюсь, пожалуйста, укажите, как лучше всего сделать это чисто. Если я прав, я серьезно не понимаю, почему не существует чистого метода, который делает это для отдельных атрибутов?

1 Ответ

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

Я только что проверил это:

Код:

Order.update(1, :description => 'fff')

SQL выполнен:

UPDATE `orders` SET `updated_at` = '2011-04-25 05:23:29', `description` = 'fff' WHERE `orders`.`id` = 1

Так что да, Rails update делает почти то, что вам нужно. (кроме того, что он также обновляет updated_at)

Подсказка : В IRB вы можете выполнить ActiveRecord::Base.logger = Logger.new(STDOUT), чтобы увидеть вывод журнала Rails (включая статистику SQL).

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