Rails 3:为输入的错误电子邮件和密码覆盖设计帮助方法

时间:2013-03-29 06:09:55

标签: ruby-on-rails-3 devise

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

这是我的路线

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

1 个答案:

答案 0 :(得分: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

如果您希望可以自定义/config/locales/devise.en.yml下的Flash消息。

最后,请务必将以下代码添加到

<强> /config/initializers/devise.rb

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

你现在应该全部准备好了。