【问题标题】:Rails : recognized routeRails:公认的路线
【发布时间】:2009-08-06 18:39:34
【问题描述】:

在给定路径的情况下,有什么方法可以获取由 rails 识别的路径?

“recognize_path”&&“recognize”方法中当前实现的rails 仅返回带有:controller、:action 和:id(如果可用)以及任何其他url 属性的哈希值。但我想获取 rails 比较路径的路由对象(在 ActionController::Routing::Routes.routes 中)。

提前致谢。

【问题讨论】:

  • 您能否提供更多关于您为什么要这样做的信息?您的问题可能有不同的解决方案。
  • 你到底想做什么?而且,weppos 所说的。
  • 抱歉,我的回复延迟了,我不在城里。至于为什么我想获取路由对象而不仅仅是当前请求的控制器和操作,我想使用路由生成导航。如果我知道当前对象,我可以通过添加一些方法来扩展 RouteSet 和 Route 类,例如 Route 的祖先、父级、子级、子级,并获取导航元素,例如面包屑、选项卡……如果不清楚,请告诉我知道的,我会尽量提供一些用例。

标签: ruby-on-rails


【解决方案1】:

您可以使用#recognize_path 的相关部分来获取Route 对象:

req = @request_class.new(env)
@router.recognize(req) { |route, matches, params| ... }

这会给你一个Journey::Route 对象。

如果您只想生成面包屑,则值得考虑这是否是最好的方法。我不确定您是否能够检查路由对象以获取足够的信息来自动生成面包屑。

【讨论】:

    猜你喜欢
    • 2015-09-08
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多