加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 通过验证重新定位注册失败

发布时间:2020-12-17 02:49:54 所属栏目:百科 来源:网络整理
导读:我有一个简单的Devise注册表单和可验证的插件.它主要按预期工作,如果用户忘记输入名字,则会使用红色验证消息将其重定向回来. 问题是它重定向到用户去的成功登录的相同路径(即,它将它们重定向到/ user而不是返回到/ user / sign_up).如果用户因任何原因刷新页
我有一个简单的Devise注册表单和可验证的插件.它主要按预期工作,如果用户忘记输入名字,则会使用红色验证消息将其重定向回来.

问题是它重定向到用户去的成功登录的相同路径(即,它将它们重定向到/ user而不是返回到/ user / sign_up).如果用户因任何原因刷新页面,则会得到No route匹配[GET]“/ user”错误.

如何在注册失败时强制重定向返回到原始/ user / sign_up路由?我知道我可以在注册控制器中破解创建操作,但是当我重定向到正确的路由时,我会丢失设计验证消息.

更新

似乎问题是Devise处理respond_with Rails 4 How Overwrite Devise Respond Path Upon Error的方式.看起来Devise试图在/ user处渲染一个创建模板,但我仍然无法覆盖它.

解决方法

首先,您可以使用以下命令创建设计控制器 –

rails generate devise:controllers users

然后你必须修改你的路线设计

# config/routes.rb
Rails.application.routes.draw do

  devise_for :users,:skip => [:registrations]

  devise_scope :user do
    get "user/sign_up",to: "users/registrations#new",as: :new_user_registration
    post "user/sign_up",to: "users/registrations#create",as: :user_registration
  end

end

希望它的工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读