4

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

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

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

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

我浏览了 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
4

2 回答 2

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
于 2013-11-26T19:31:41.740 回答
-2

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

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

于 2013-04-07T14:16:55.050 回答