设计错误后重定向
在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