What is the opposite of url_for in Rails? A function that takes a path and generates the interpreted route?

可紊 提交于 2019-12-09 16:09:59

问题


Brain's a little fried....How do I get a hash of the :controller and :action from a relative_path?

This is basically the opposite of url_for. in the example below, "some_function" is the mystery function name I'm looking for...I know it's easy, just can't remember or seem to be able to find it in the docs.

Like so:

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

回答1:


Rspec has a method 'params_for', which uses Action Controller's Routing Methods to parse paths with methods into routes.

Theirs is a little more robust than this, but it boils down to:

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



回答2:


With Rails 3 the best way is to use

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


来源:https://stackoverflow.com/questions/2222522/what-is-the-opposite-of-url-for-in-rails-a-function-that-takes-a-path-and-gener

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!