在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
答案 0 :(得分:3)
我认为问题是你的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
答案 1 :(得分:-2)
它不会将您重定向到任何地方,这些是设计发布到的网址。
如果您想编辑这些网址,请参阅维基以获得一个良好的起点: https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes