在Rails中,与url_for相反的是什么?一个接受路径并生成解释路由的函数?

11

我的大脑有点混乱....如何从相对路径中获取:controller和:action的哈希值?

这基本上是url_for的反向操作。在下面的示例中,“some_function”是我正在寻找的神秘函数名称......我知道这很简单,只是不能记住或似乎无法在文档中找到它。

就像这样:

some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}

controller.action_namecontroller.controller_name足够吗?或者你真的需要操作相对于当前控制器/操作的“外部”通用路径吗? - Martin Carpenter
我不会...很抱歉。谢谢你的提问。 - btelles
2个回答

10

在Rails 3中,最好的方法是使用:

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

10

Rspec有一个名为'params_for'的方法,它使用Action Controller的Routing Methods将带有方法的路径解析为路由。

他们的方法比这个更加强大,但归根结底就是这样。

def params_for(path, method)
  params = ActionController::Routing::Routes.recognize_path(path, :method => method)
end

当您使用ActionController :: Routing :: Routes时,可能会收到弃用警告。 - Thiago Arrais
请提供“params_for”方法的源链接。 - zykadelic
1
Rails.application.routes.recognize_path 适用于 Rails 3.2。 - zykadelic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接