Предоставьте два разных уведомления для одного действия контроллера в зависимости от перенаправления с пути в Rails 3 - PullRequest
0 голосов
/ 24 февраля 2012

Я редактирую и обновляю свой объект профиля в двух разных местах и ​​хотел бы предоставить конкретное уведомление для каждого. Например, когда я редактирую / обновляю профиль в settings_path, я хотел бы сказать что-то вроде «Обновление информации о пользователе успешно». Когда я редактирую / обновляю профиль в join_path, я бы хотел сказать что-то вроде "Профиль создан" или вообще ничего.

Возможно ли что-то подобное?

Вот мое Profiles#update действие:

def update
  @profile = user.profile
  if @profile.update_attributes(params[:profile])
    redirect_to profile_path, :notice => 'Updated user information successfully.'
  else
    render :edit
  end
end

1 Ответ

0 голосов
/ 24 февраля 2012

Вы можете проверить, откуда была отправлена ​​форма, используя request.referrer, например,

def update
  @profile = user.profile
  if @profile.update_attributes(params[:profile])
    if request.referrer == settings_path
      notice_message = 'Updated user information successfully'
    elsif request.referrer == join_path
      notice_message = 'Profile created'
    else
      notice_message = 'Profile Updated'  # default message
    end

    redirect_to profile_path, :notice => notice_message
  else
    render :edit
  end
end

Этот код может быть очищен довольно много, но это его основная тема.

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