2015-07-20 34 views
4

我的一个宝石,Rails引擎,提供了一条不应该在那里的路线。我想知道那是什么宝石。如何找到引擎(gem)提供路线

这是一个Spree网站,有一些扩展,所以相当多的小引擎伴随着依赖关系:其中之一是提供admin/login不应该在那里。当我建立一个“香草”狂欢网站时,那条路线并不存在,但在我的旧时间和升级时间的情况下,情况就是这样。

有没有办法快速得到所有路由的列表,由它们定义的文件或引擎分组?

+0

Mhhh好点。在这种情况下,“耙路”是否有帮助?理论上,显示每条路线与哪个控制器相关联,它可以提供帮助。远非完美,但你可以理解哪个引擎来自控制器类,也许是 –

+0

是的,但是,尽管它可能很奇怪,但提供控制器的gem(spree_auth_device)不提供路由。至少不是从我所能看到的。我现在意识到,我没有尝试最明显的:启用/禁用宝石。 – berkes

回答

1

快速和肮脏的解决方案

我不知道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 

你不会找到这个特定的路线,但它应该给你一个提示去哪里找..

+0

我已经尝试grepping,但奇怪的是,当我搜索非常特定的字符串('admin/login')时,路径不显示,当我搜索部件('admin'或'login')时, 。然而在最后一个案例中,我还没有开始寻找的起点。 – berkes