我的一个宝石,Rails引擎,提供了一条不应该在那里的路线。我想知道那是什么宝石。如何找到引擎(gem)提供路线
这是一个Spree网站,有一些扩展,所以相当多的小引擎伴随着依赖关系:其中之一是提供admin/login
不应该在那里。当我建立一个“香草”狂欢网站时,那条路线并不存在,但在我的旧时间和升级时间的情况下,情况就是这样。
有没有办法快速得到所有路由的列表,由它们定义的文件或引擎分组?
我的一个宝石,Rails引擎,提供了一条不应该在那里的路线。我想知道那是什么宝石。如何找到引擎(gem)提供路线
这是一个Spree网站,有一些扩展,所以相当多的小引擎伴随着依赖关系:其中之一是提供admin/login
不应该在那里。当我建立一个“香草”狂欢网站时,那条路线并不存在,但在我的旧时间和升级时间的情况下,情况就是这样。
有没有办法快速得到所有路由的列表,由它们定义的文件或引擎分组?
快速和肮脏的解决方案
我不知道Rails可以为特定的路由做到这一点。我假设你没有捆绑许多设置路线的宝石。
bundle show --paths
列出了您的Gemfile所需的所有宝石的路径。
鉴于Rails的引擎也draw their routes in config/routes.rb
,你可以找到使用捆扎机和UNIX工具,这些文件:
find `bundle show --paths` -name routes.rb | grep -v test | grep -v spec
你不会找到这个特定的路线,但它应该给你一个提示去哪里找..
我已经尝试grepping,但奇怪的是,当我搜索非常特定的字符串('admin/login')时,路径不显示,当我搜索部件('admin'或'login')时, 。然而在最后一个案例中,我还没有开始寻找的起点。 – berkes
Mhhh好点。在这种情况下,“耙路”是否有帮助?理论上,显示每条路线与哪个控制器相关联,它可以提供帮助。远非完美,但你可以理解哪个引擎来自控制器类,也许是 –
是的,但是,尽管它可能很奇怪,但提供控制器的gem(spree_auth_device)不提供路由。至少不是从我所能看到的。我现在意识到,我没有尝试最明显的:启用/禁用宝石。 – berkes