2014-03-29 45 views
0

我对耙路线的理解是,它引导了Rails应用程序,然后从中拉出路线。如果我只想查看文本(无需加载rails应用程序)并能够输出与rake路由输出类似的内容,我该怎么做?我知道耙路径实际上运行Ruby代码,我担心这样做,因为我不信任这些应用程序。获取Rails应用程序的路线而不运行耙路线

我很厌倦加载Rails应用程序,因为我不信任这些Rails应用程序,但是如果有一种方法可以对Rake路由或某些相关方法的运行进行沙盒处理,那么我也会对其开放。

+0

把应用程序变成流浪沙箱并运行它有:http://www.vagrantup.com/ – Casper

回答

0

如果你有一个复杂的路径文件和很多引擎,你可能会更好地使用Vagrant在沙箱中运行应用程序。如果它很简单,这种方法可能适用于你。

Rails将从routes.rb生成路由,而不包含基础应用程序。创建一个新的虚拟应用程序,确保您将rails版本与您要检查的应用程序版本相匹配。

> rails new dummy_app 
    … 

> cd dummy_app 
> cp /path/to/untrusted/app/config/routes.rb ./config/ 

编辑在路由文件顶部的应用程序名称相匹配的虚拟应用程序的名称,在这种情况下,这将是DummyApp.Application.routes.draw do。然后运行

> rake routes 

一些注意事项:如果在没有任何发动机或宝石speficic路线,你需要将这些添加到Gemfile中或注释掉那些路由。例如,如果pap使用active_admin,则需要将其添加到gemfile以及生成AdminUser类。然后当生成器将行添加到路由文件时,您将需要重新扫描路由文件。如果遇到未初始化内容的问题,您可能需要初始化程序来要求某些类。例如,如果你安装Resque ::服务器,您需要使用这两条线路的初始化:

# config/initializers/dummy_init.rb 
require 'resque' 
require 'resque/server' 
相关问题