ruby-on-rails – 使用root的rails命名空间路由仅适用于开发

ruby-on-rails – 使用root的rails命名空间路由仅适用于开发,第1张

概述namespace :admin do root :to => "admin#index"end 我可以访问localhost:3000 / admin,它的工作原理. 当我部署到heroku时myapp.herokuapp.com/admin没有.它产生了这个 ActionController :: RoutingError(未初始化的常量Admin :: AdminController
namespace :admin do   root :to => "admin#index"end

我可以访问localhost:3000 / admin,它的工作原理.
当我部署到heroku时myapp.herokuapp.com/admin没有.它产生了这个

ActionController :: RoutingError(未初始化的常量admin :: adminController):

我的控制器实际上是adminController,而不是admin :: adminController,我不太确定区别是什么或如何解决这个问题.

同样,它都在本地工作.

解决方法 您可以在rake路由输出中看到此命名空间路由使用的路径:controller => “管理/管理员”.在查找控制器类时,它将admin / admin转换为admin :: adminController.因此,命名空间路由的控制器通常位于app / controllers / namespace_name目录下,并包含在namespacename模块中.在您的情况下,它应该是app / controllers / admin / admin_controller.rb中定义的admin :: adminController类.

虽然,为什么你的配置在开发中运行良好但在生产模式中中断(我试过并成功地再现它)真的很有趣.我相信它与生产模式下的加载和缓存类有关,因为在config / environments / development.rb中设置config.cache_classes = true会导致它在开发模式下中断.

正如zoltarSpeaks所说,它应该是root:to => “admin#index”而不是root:to => “管理#指数”.

另外需要注意的是,当存在多个相关控制器时,通常会使用路由的名称空间.如果您只需要单个adminController,您可以像这样配置您的路由:

resources :admin,:only => :index

在这种情况下,不需要进行其他更改(如果您希望除索引之外还有其他默认 *** 作,则只删除:only选项).

总结

以上是内存溢出为你收集整理的ruby-on-rails – 使用root的rails命名空间路由仅适用于开发全部内容,希望文章能够帮你解决ruby-on-rails – 使用root的rails命名空间路由仅适用于开发所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存