4

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
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 に答える