Как сделать так, чтобы flash [: note] не отображался дважды при перенаправлении из ApplicationController - PullRequest
0 голосов
/ 07 января 2010

У меня есть простой метод в ApplicationController, который при вызове может установить 'flash [: note]', а затем перенаправить на root_url.

Проблема в том, что хотя этот метод вызывается только один раз, корневой URL отображает эту вспышку [: note] TWICE.

Вот метод (это before_filter, используемый в других контроллерах и определенный в ApplicationController):

def authenticate
  if params[:id].try(:size) == 40
    company = Company.find_by_hash_identifier(params[:id])
    if company
      session[:editable_companies] ||= []
      session[:editable_companies] << company.id
      session[:editable_companies].compact!.uniq!
    end
  end
  unless session[:editable_companies].try('&', [company.try(:id), params[:id]])
    flash[:notice]= "You are not permitted to edit this company.<br />Please check the URL from the email we sent you, and try again."
    flash.keep[:notice]
    redirect_to root_url and return
  end
end

В представлении root_url я получаю две вспышки примерно так:

Вам не разрешено редактировать эту компанию. Вам не разрешено редактировать эту компанию.

Ответы [ 3 ]

1 голос
/ 07 января 2010

Вам не нужно (по крайней мере, не нужно) вызывать flash.keep(:notice), чтобы сохранить флэш-память при перенаправлении.Значение во флэш-хэше автоматически удаляется только на render.

1 голос
/ 07 января 2010

Избавьтесь от линии flash.keep(:notice).

0 голосов
/ 07 января 2010

Оказывается, это была проблема с точки зрения. : - (

У меня на самом деле была вспышка [: note] дважды.

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