9

脳は少し揚げられています....relative_pathから:controllerと:actionのハッシュを取得するにはどうすればよいですか?

これは基本的にurl_forの反対です。以下の例では、「some_function」は私が探しているミステリー関数の名前です...私はそれが簡単であることを知っています、ただ覚えていないか、ドキュメントでそれを見つけることができるようです。

そのようです:

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

2 に答える 2

10

Rspecにはメソッド'params_for'があり、これはActionControllerのルーティングメソッドを使用してパスとメソッドをルートに解析します。

彼らのものはこれより少し頑強ですが、要約すると次のようになります。

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

Rails 3の場合、最良の方法は

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