【问题标题】:Is it possible to look up a route in Rails by a given url?是否可以通过给定的 url 在 Rails 中查找路线?
【发布时间】:2013-04-22 18:21:26
【问题描述】:

有时在定制一个大型的现有 Rails 平台(例如 Spree)时,能够通过 url 查找路由会很好。比如:

rake routes URL=/preexisting/url

这显然行不通,但 Rails 中是否有类似的功能?我已经尝试查找 rake 路线的文档,但没有找到任何东西。

【问题讨论】:

    标签: ruby-on-rails routes rake


    【解决方案1】:

    如果您使用的是基于 Unix 的操作系统 (Linux/OSX),您可以使用 grep

    rake routes | grep /preexisting/url
    

    它的作用是获取rake routes 的输出,将其传递(或“管道”)到grep,然后查找匹配“/preexisting/url”的行。

    【讨论】:

    • 酷!这样就完成了工作,但是您知道是否可以仅使用 rake 路由?
    • 您可以传递给 rake 路由的唯一选项是CONTROLLER=x,其中x 是控制器的名称(如rake routes 的输出所示)。这将仅显示与该控制器相关的路由。
    • 好的。谢谢你的解释!
    【解决方案2】:

    两种方法:

    rake routes | grep 'preexisting\/url'
    

    或者,如果您安装了 pry-rails gem,您可以在 Rails 控制台中执行此操作:

    show-routes -G '/preexisting/url'
    

    如果 URL 中包含 id 或其他参数,您可能只想将这部分留在搜索字符串之外。

    我没有使用过它,但我听说过一个名为六分仪的 gem,它会在浏览器窗口中显示您的路线。这可能是查看它们的好方法,只需使用浏览器的页面搜索功能在其中查找 url。

    【讨论】:

    • 感谢您的信息。有时间我得试试撬开。它看起来真的很酷。暂时我可能会坚持第一种方法。我听说过六分仪,实际上正在考虑将其作为一种解决方案,但我正在寻找一种从终端实现此目的的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多