Ric*_*d_G 25 ruby redirect ruby-on-rails
Ruby 2.0.2,Rails 4.0.3,Sorcery 0.8.5
我试图在我的代码中发出重定向,只是为了接收已经发出重定向或渲染的错误消息.如果是这样的话,我很高兴回来.但是,如果由于任何其他原因调用该方法,我想检查是否已发出重定向或呈现,如果没有,则发出它.代码是基于Sorcery的身份验证.
在应用程序控制器中,我有:
def not_authenticated
redirect_to login_url # , :alert => "First log in to view this page."
end
Run Code Online (Sandbox Code Playgroud)
这最终检查current_user,如下所示:
def current_user
@current_user ||= @view.current_user unless @view.blank?
begin
@current_user ||= Associate.find(session[:user_id]) unless session[:user_id].blank?
rescue ActiveRecord::RecordNotFound => e
return
end
current_user = @current_user
end
Run Code Online (Sandbox Code Playgroud)
在救援中,我想确定是否已经发生重定向或渲染,以便我可以重定向到login_url,如果没有.当然,这意味着它是从一种不同的方法调用的.谢谢.
spi*_*ann 45
您可以performed?
在控制器中调用以检查是否已经render
或redirect_to
已经调用过:
performed? # => false
redirect_to(login_path)
performed? # => true
Run Code Online (Sandbox Code Playgroud)
阅读performed?
Rails文档中的更多信息.