设计错误后重定向 [英] Devise redirecting after errors

查看:105
本文介绍了设计错误后重定向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在此注册但忘了密码设计的看法,如果你得到一个错误,它会将您重定向到父页面。

因此​​,在注册网页( /用户/ sign_up ),如果你得到一个错误,它会将您重定向到/用户,并显示错误。

在忘记密码页面( /用户/密码/新),如果你得到一个错误,它会将您重定向到 /用户/密码并显示错误。

怎样才能改变它,所以它做同样的事情在登录页,如果有错误,它停留在同一页面上,并显示错误。

我已经通过制定看了看,找不到在哪里的重定向是

下面是我的路线设计:

  devise_for:用户:跳过=> [:会议]
如:用户做
  得到'登入'=> 色器件/会话#新':为= GT; :new_user_session
  后'登入'=> 色器件/会话#创建':为= GT; :USER_SESSION
  得到'注册'=> 色器件/注册#新':为= GT; :新用户
  交'注册'=> 色器件/注册#创建':为= GT; :create_user_session
  删除signout'=> 色器件/会话#灭',:如=> :destroy_user_session
  得到/账号=> 色器件/注册#编辑
结束


解决方案

我认为问题是,你必须在发布注册命名不正确。用户注册表格 POST 什么路径来呢?

 交'注册'=> 色器件/注册#创建':为= GT; :create_user_session

应该是:

 交'注册'=> 色器件/注册#创建':为= GT; :用户注册

下面就一起来看看我的的routes.rb 这解决了这个问题:

 为:用户做
  得到/登入=> 设计/会话#新:为= GT; :new_user_session
  邮报/登入=> 设计/会话#创建:作为= GT; :USER_SESSION
  删除/ signout=> 设计/会话#消灭,:如=> :destroy_user_session
  得到/注册=> 设计/注册#新:为= GT; :new_user_registration
  后'/注册'=> 色器件/注册#创建':为= GT; :用户注册
结束

On the sign up and forgot password views in Devise, if you get an error, it redirects you to the parent page.

So on the sign up page (/users/sign_up), if you get an error, it redirects you to /users and shows the error.

On the forgot password page (/users/password/new), if you get an error, it redirects you to /users/password and shows the error.

How can I change it so it does the same thing as the sign in page, if there's an error, it stays on the same page and shows the error.

I've looked through Devise and can't find where the redirect is.

Here's my routes for 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

解决方案

I think the problem is that you have the post 'signup' named incorrectly. What path does your user signup form POST to?

post 'signup' => 'devise/registrations#create', :as => :create_user_session

Should be:

post 'signup' => 'devise/registrations#create', :as => :user_registration

Here's a look at my routes.rb which solved this issue:

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

这篇关于设计错误后重定向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆