设计错误后重定向

在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 

我认为问题是您的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 

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

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