0

我目前的/users/sign_in路径匹配到/home/all. 所以每次用户寻找/users/sign_in他/她都会被带到/home/all. 现在发生的情况是,如果用户输入了错误的用户名或密码,他/她会在/users/sign_in. 我想知道如何显示消息/home/all

这是我的路线

get "/users/sign_in" => redirect('/home/all')
4

1 回答 1

1

您可以将路线保持原样。并在 app 下创建一个文件夹为classes(app/classes)。然后有类似的东西

/app/classes/custom_failure.rb

class CustomFailure < Devise::FailureApp
  def redirect_url
    home_all_path
  end

  # override the response call
  def respond
    if http_auth?
      http_auth
    else
      redirect
    end
  end
end

如果您愿意,您可以在 下自定义 Flash 消息/config/locales/devise.en.yml

最后,确保将以下代码添加到

/config/initializers/devise.rb

  config.warden do |manager|
    manager.failure_app = CustomFailure
  end

你现在应该准备好了。

于 2013-03-29T07:25:37.243 回答