#ruby-on-rails
#ruby-on-rails
Вопрос:
Как мне перехватить и вернуть предупреждение, когда отредактированные значения не совпадают, из-за чего rails не выполняет ОБНОВЛЕНИЕ?
Комментарии:
1. Что вы подразумеваете под тем, что значения не совпадают? Какой тип значений?
2. Согласен с @Devin, нужна дополнительная информация. Вы могли бы сверить атрибуты params с атрибутами самого объекта и не выполнять обновление, если они совпадают, но это не имеет особого смысла.
3. Я имею в виду, что если кто-то нажимает, чтобы отредактировать свою дату рождения, например, но ничего не изменил и просто отправляет ту же дату рождения, я хочу отправить уведомление.
Ответ №1:
Вы могли бы обработать это в своем контроллере. В базовом определении обновления :
def update
if birth_date_changed? amp;amp; @user.update_attributes(params[:user])
flash[:notice] = 'User was successfully updated.'
redirect_to post_url(@post)
else
flash[:warning] = 'Birth date did not changed' unless birth_date_changed?
render :action => "edit"
end
end
private
def birth_date_changed?
@user.birth_date != params[:user][:birth_date]
end