在Rails中url_for的反义词是什么?获取路径并生成解释路线的函数?

时间:2010-02-08 15:15:39

标签: ruby-on-rails ruby routing url-routing actionpack

大脑有点油炸....如何获取:controller和:来自relative_path的操作?

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

像这样:

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

2 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:8)

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

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