Rails:调用Devise authenticate_user!并处理无效的用户/密码异常

tha*_*kal 5 ruby-on-rails devise ruby-on-rails-3

我有一个弹出窗口,只有在用户通过身份验证后才能查看/保存一些信息.

我正在使用设计.

在控制器before_filter中,它检查用户是否已登录,如果没有,则显示登录页面.

此登录页面是网站登录页面的翻录版本,因此它非常适合弹出窗口.

在身份验证操作上,我调用authenticate_user!.当用户输入有效凭据时,一切正常.但是当凭证无效时,设计会自动重定向到网站的登录页面(正如我所说的不同,不适合弹出窗口)

我尝试在电话中附加救援,但无济于事.

有人可以建议一个更好/正确的方法吗?:)

def authenticate

    authenticate_user! rescue redirect_to "/popup/sign_in"

    if user_signed_in?
      respond_to do |format|
        format.html {
          flash[:notice] = I18n.t("logged_in_succesfully")
          redirect_back_or_default(accounts_path)
        }

    else
      flash[:error] = I18n.t("devise.failure.invalid")
      render "/popup/sign_in"
    end
  end
Run Code Online (Sandbox Code Playgroud)