【问题标题】:Devise redirecting after errors设计错误后重定向
【发布时间】:2013-03-29 14:31:53
【问题描述】:

在 Devise 中的注册和忘记密码视图中,如果您遇到错误,它会将您重定向到父页面。

所以在注册页面 (/users/sign_up) 上,如果您遇到错误,它会将您重定向到 /users 并显示错误。

在忘记密码页面 (/users/password/new) 上,如果您遇到错误,它会将您重定向到 /users/password 并显示错误。

如何更改它,使其与登录页面执行相同的操作,如果出现错误,它会停留在同一页面上并显示错误。

我浏览了 Devise,但找不到重定向的位置。

这是我的 Devise 路线:

devise_for :users, :skip => [:sessions]
as :user do
  get 'signin' => 'devise/sessions#new', :as => :new_user_session
  post 'signin' => 'devise/sessions#create', :as => :user_session
  get 'signup' => 'devise/registrations#new', :as => :new_user
  post 'signup' => 'devise/registrations#create', :as => :create_user_session
  delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
  get "/account" => "devise/registrations#edit"
end

【问题讨论】:

    标签: ruby-on-rails ruby authentication devise


    【解决方案1】:

    我认为问题在于您的 post 'signup' 命名不正确。您的用户注册表格POST 的路径是什么?

    post 'signup' => 'devise/registrations#create', :as => :create_user_session
    

    应该是:

    post 'signup' => 'devise/registrations#create', :as => :user_registration
    

    看看我的routes.rb 解决了这个问题:

    as :user do
      get "/signin" => "devise/sessions#new", :as => :new_user_session
      post "/signin" => "devise/sessions#create", :as => :user_session
      delete "/signout" => "devise/sessions#destroy", :as => :destroy_user_session
      get "/signup" => "devise/registrations#new", :as => :new_user_registration
      post '/signup' => 'devise/registrations#create', :as => :user_registration
    end
    

    【讨论】:

      【解决方案2】:

      它不会将您重定向到任何地方,这些是 Devise 发布到的 URL。

      如果您想编辑这些 URL,请参阅 wiki 以获得良好的起点: https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes

      【讨论】:

      • 如果您转到注册页面 (/users/sign_up) 并单击注册而不添加任何信息,您将被重定向到 /users。
      • 我只希望它是 /signup,如果有任何错误,显示在该页面上。
      • 没有。 /users 是表单发布到的路径。见github.com/plataformatec/devise/blob/master/app/views/devise/…
      • 哦,我明白了。如何将其更改为相同的 URL?
      • 查看我的问题的更新。我已经改变了它们,但它仍然做同样的事情
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2015-05-05
      • 2015-08-19
      • 1970-01-01
      相关资源
      最近更新 更多