Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为和零重定向错误设计确认后路径_Ruby On Rails - Fatal编程技术网

Ruby on rails 为和零重定向错误设计确认后路径

Ruby on rails 为和零重定向错误设计确认后路径,ruby-on-rails,Ruby On Rails,在RubyonRails4中,我的一个操作失败,因为它重定向到nil。获取重定向列表并查找错误呼叫的最佳做法是什么 编辑: 违规代码是: class ConfirmationsController < Devise::ConfirmationsController def after_confirmation_path_for(resource_name, resource) redirect_to some_specific_path_helper end

在RubyonRails4中,我的一个操作失败,因为它重定向到nil。获取重定向列表并查找错误呼叫的最佳做法是什么

编辑: 违规代码是:

class ConfirmationsController < Devise::ConfirmationsController
    def after_confirmation_path_for(resource_name, resource)
        redirect_to some_specific_path_helper
    end
end
类确认控制器

每当我在Deave中点击电子邮件确认操作时,该操作就会失败并报告无重定向。

因此我的错误是,
的确认后路径不是一个操作,而是一个简单的路径帮助器。因此,从确认路径中调用重定向是不正确的,并导致此方法返回nil(即nothing)

确认后正确使用
路径是让它返回所选路径,如下所示:

class ConfirmationsController < Devise::ConfirmationsController
    def after_confirmation_path_for(resource_name, resource)
        # just return the path, do not call redirect
        some_specific_path_helper 
    end
end
类确认控制器
rails服务器日志是否没有显示任何内容?这就是测试的目的。没有“重定向列表”这样的东西,除非在
config/routes.rb
中定义了重定向。如果在config/routes.rb中定义了重定向,则可以运行
bundle exec rake routes
。然后您应该会看到类似这样的内容:
命名的路径GET/path(:format)redirect(301)
如果您的重定向是在控制器操作中定义的(我怀疑这就是您现在正在做的),则无法获取所有重定向的列表。你能提供你的控制器代码吗?你能显示一些日志吗?@Sinstein:日志没有显示任何异常,因为问题在于我对
方法确认后的
的理解,请参阅我的答案。@Codextremist:谢谢你的评论,它让我找到了我的错误。