ruby-on-rails - 设计:注册失败时重定向?

标签 ruby-on-rails ruby ruby-on-rails-3 rubygems devise

我正在尝试重定向未通过注册表单的用户(例如,他们输入的用户名已被占用,他们将字段留空等...)

我为登录表单失败的用户设置了自定义失败,代码如下:

class CustomFailure < Devise::FailureApp 

   def redirect_url 
      root_path 
   end 

   def respond 
      if http_auth? 
      http_auth 
   else 
      redirect 
   end 
 end

但是,我一直在研究如何针对注册失败进行设置。理想情况下,我只想将它们重定向回/到 root_path,有什么想法吗?谢谢!

最佳答案

您可能需要子类化 Devise::RegistrationsController 并覆盖创建操作。只需从 here 复制创建方法即可并在保存失败时修改重定向。

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController


  def create
    # modify logic to redirect to root url
  end


end 

改变你的路由来告诉 Devise 使用你的 Controller :

# config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}

关于ruby-on-rails - 设计:注册失败时重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240141/

相关文章:

ruby - 为什么 Linux 上的 Ruby 对 File.writable 返回 true? ('/tmp/file' ) 但在尝试写入文件时引发 Errno::EACCES ?

ruby - "!!"符号在 Ruby 中是什么意思?

ruby-on-rails - 删除多态关联

java - 如何在 Sun Solaris 11 上将 java 版本从 1.6.0 降级到 java 1.5.0

ruby-on-rails-3 - Capistrano 在发送到服务器之前捆绑 gem

html - Ruby on Rails 形式 : How to put text into an input field that disappears on click

ruby-on-rails - 显示 Stripe 信用卡的最后 4 位数字

sql - 了解为什么我的 Rails 4 应用程序随机超时

ruby-on-rails - 我如何设置 heroku postgresql 应用程序的路径?

ruby-on-rails - 如何解决 Rails、GeoRuby(和 postgis/postgresql): NameError: uninitialized constant Point?