大脑有点油炸....如何获取:controller和:来自relative_path的操作?
这与url_for基本相反。在下面的例子中,“some_function”是我正在寻找的神秘函数名称......我知道它很简单,只是记不住或者似乎无法在文档中找到它。
像这样:
some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
答案 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')