9

大脑有点炸了....如何从 relative_path 中获取 :controller 和 :action 的哈希值?

这与 url_for 基本相反。在下面的示例中,“some_function”是我正在寻找的神秘函数名称......我知道这很容易,只是不记得或似乎能够在文档中找到它。

像这样:

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

2 回答 2

10

使用 Rails 3 最好的方法是使用

Rails.application.routes.recognize_path('/posts/1/edit')
于 2012-01-25T18:41:23.060 回答
10

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

他们的比这更强大,但归结为:

def params_for(path, method)
  params = ActionController::Routing::Routes.recognize_path(path, :method => method)
end
于 2010-02-08T17:49:17.807 回答