代码之家  ›  专栏  ›  技术社区  ›  btelles

在Rails中,url_的反面是什么?获取路径并生成解释的路径的函数?

  •  8
  • btelles  · 技术社区  · 15 年前

    大脑有点烧焦了……我怎么才能从一个相对路径中得到:控制器和:动作的杂凑?

    这基本上与url_相反。在下面的示例中,“some-u-function”是我要查找的神秘函数名……我知道这很容易,只是不记得或似乎可以在文档中找到它。

    像这样:

    some_function('/posts/1/edit')
    => {:controller => 'posts', :action => 'edit', :id => '1'}
    
    2 回复  |  直到 13 年前
        1
  •  9
  •   Graeme Worthy    15 年前

    rspec有一个方法“params_for”,它使用操作控制器的路由方法将带有方法的路径解析为路由。

    他们的比这更强壮一点,但归根结底是:

    def params_for(path, method)
      params = ActionController::Routing::Routes.recognize_path(path, :method => method)
    end
    
        2
  •  8
  •   Thiago Arrais    13 年前

    对于Rails 3,最好的方法是使用

    Rails.application.routes.recognize_path('/posts/1/edit')