【发布时间】:2013-04-22 18:21:26
【问题描述】:
有时在定制一个大型的现有 Rails 平台(例如 Spree)时,能够通过 url 查找路由会很好。比如:
rake routes URL=/preexisting/url
这显然行不通,但 Rails 中是否有类似的功能?我已经尝试查找 rake 路线的文档,但没有找到任何东西。
【问题讨论】:
标签: ruby-on-rails routes rake
有时在定制一个大型的现有 Rails 平台(例如 Spree)时,能够通过 url 查找路由会很好。比如:
rake routes URL=/preexisting/url
这显然行不通,但 Rails 中是否有类似的功能?我已经尝试查找 rake 路线的文档,但没有找到任何东西。
【问题讨论】:
标签: ruby-on-rails routes rake
如果您使用的是基于 Unix 的操作系统 (Linux/OSX),您可以使用 grep。
rake routes | grep /preexisting/url
它的作用是获取rake routes 的输出,将其传递(或“管道”)到grep,然后查找匹配“/preexisting/url”的行。
【讨论】:
CONTROLLER=x,其中x 是控制器的名称(如rake routes 的输出所示)。这将仅显示与该控制器相关的路由。
两种方法:
rake routes | grep 'preexisting\/url'
或者,如果您安装了 pry-rails gem,您可以在 Rails 控制台中执行此操作:
show-routes -G '/preexisting/url'
如果 URL 中包含 id 或其他参数,您可能只想将这部分留在搜索字符串之外。
我没有使用过它,但我听说过一个名为六分仪的 gem,它会在浏览器窗口中显示您的路线。这可能是查看它们的好方法,只需使用浏览器的页面搜索功能在其中查找 url。
【讨论】: