Хотя create
и update
похожи, я не думаю, что стоит делать их буквально одинаковыми.Обычно вам нужны разные флэш-сообщения для каждого.Кроме того, если проверка не удалась, на create
обычно лучше всего визуализировать ваше действие new
, тогда как на неудачном update
вы, скорее всего, захотите выполнить действие edit
.Этих небольших различий обычно достаточно, чтобы было проще и удобнее читать отдельные методы создания и новые методы.
Лично у меня было бы предложение else
для каждого из create
и update
.Они выглядят так:
#create
else
render :action => "new"
end
#update
else
render :action => "edit"
end
Пользователь по-прежнему может видеть ошибку и исправлять ее, но в этом случае мне вообще не нужны create
и update
представления.
Если бы вы использовали save!
или update_attributes!
, любая ошибка проверки вызвала бы исключение, которое вам нужно было бы где-то спасти.Если вы не спасете его, ваши пользователи будут получать страницу с ошибкой 500 каждый раз, когда модель не удается проверить.Вот почему более привычно использовать не!save
и update_attributes
методы.