Подтвердить что ты не робот

Является ли метод Rails 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

A Rails 1.1.6, который я рассказываю, рекомендует использовать метод update_attributes для обновления модели, как в примере кода моего контроллера, указанного выше. Глядя на документацию Rails, мне интересно, почему метод update не был бы предпочтительным, тем более, что он назван так логически.

4b9b3361

Ответ 1

Обновление принимает объект id и набор атрибутов, которые в противном случае работают как update_attributes.

Итак, это (из AWDWR 3rd edition)

Order.update(12, :name => "Barney", :email => "[email protected]")

эквивалентно

Order.find(12).update_attributes(:name => "Barney", :email => "[email protected]")

Итак, если все, что вы хотите сделать, это обновить строку с известным идентификатором с набором атрибутов, тогда я бы сказал, что нет причин не использовать update - похоже, причина в том, что они его написали!

(Есть ли способ, которым вы можете получить учебное пособие для обновления с 1.1.6? Он довольно старый и не был особенно разрушающим землю релизом, когда он был текущим. 1.2.6 было лучше - последнее из 1. xs, если я правильно помню).

Ответ 2

Используя метод update_attributes, просто предположите, что у вас уже есть объект, и вы просто передадите набор атрибутов. И работа выполнена!