Ruby on rails 为不被呼叫而在注册后设计路径

Ruby on rails 为不被呼叫而在注册后设计路径,ruby-on-rails,devise,Ruby On Rails,Devise,我正在使用Desive和多个认证、管理和用户模型。在用户注册时,我想重定向到配置文件页面。(管理员是使用rake任务创建的,或通过管理员页面创建的,而不是通过注册过程创建的。) 我正在使用Ruby 2.0.0、Rails 4和Desive 3.1.0 根据StackOverflow和Desive GitHub页面上的帮助,这是我用来重定向的代码 class ApplicationController < ActionController::Base protect_from_for

我正在使用Desive和多个认证、管理和用户模型。在用户注册时,我想重定向到配置文件页面。(管理员是使用rake任务创建的,或通过管理员页面创建的,而不是通过注册过程创建的。)

我正在使用Ruby 2.0.0、Rails 4和Desive 3.1.0

根据StackOverflow和Desive GitHub页面上的帮助,这是我用来重定向的代码

class ApplicationController < ActionController::Base
    protect_from_forgery
    before_filter :authenticate_user!

    def after_sign_up_path_for(resource)
        Rails.logger.info('ApplicationController: after_sign_up_path_for called')
        '/profile'
    end

    def after_inactive_sign_up_path_for(resource)
        Rails.logger.info('ApplicationController: after_inactive_sign_up_path_for called')
        '/profile'
    end
end
class ApplicationController
但是,当我在注册过程中运行时,似乎既没有调用after_sign_,也没有调用after_inactive_sign_方法,因为没有出现日志记录

现在我做了一些搜索,我似乎找不到我的代码有任何错误。我想知道这是否是由于我使用的多模型

有人能解释一下吗

如果您需要查看更多代码或其他信息,请询问

看一看。在它开始工作之前,您需要再做一些更改

您还应该覆盖应用程序控制器中
的方法
designe::Controllers::Helpers#storage_location_,以返回
nil
。这也适用于
的路径中的签名后的


其次,对于
的注册路径之后的
方法和对于
的非活动注册路径之后的
方法应该是私有的。

您不能在应用程序控制器中重写此方法。 您必须像这样覆盖设备控制器的注册:

class RegistrationsController < Devise::RegistrationsController

  protected

  def after_sign_up_path_for(resource)
    # your path
  end
end
类注册控制器

希望它能帮助您。

阅读github上的Desive wiki

这里是相关链接


我遇到了与约翰·贾德类似的问题。通过阅读Rahul Singh好心指出的文档,我意识到我需要更新我的
routes.rb
文件,因为Deviate不知道覆盖的
Deviate::RegistrationController

下面是我的
routes.rb
文件的内容:

devise_for :users
我将其替换为:

devise_for :users, controllers: { registrations: "registrations" }

这就解决了我的问题。

谢谢你的帮助。不过有几件事。我不知道如何将此项实际设置为零?(作为#存储的#位置…解析为注释。)从链接上看,这似乎是您注销的过程,而不是注册。我还添加了私有和受保护。不高兴。谢谢Sunil,不过我试着换成了RegistrationsController,但运气不好。此外,Desive wiki指出这应该在ApplicationController中完成。还是不知道为什么这样不行,谢谢。这很有帮助。毕竟,我在路线上遗漏了:控制器=>{:注册=>“注册”}(在使用上述Sunils建议后)。干杯。截至2018年10月,Desive wiki页面是空白的??我相信这是更新的页面:谢谢@user2490003现在更新了。