Quel est le contraire de url_for dans Rails? Une fonction qui prend une trajectoire et génère le trajet interprété?

StackOverflow https://stackoverflow.com/questions/2222522

Question

cerveau est un peu frit .... Comment puis-je obtenir un hachage du: contrôleur et: l'action d'un RELATIVE_PATH

Ceci est essentiellement le contraire de url_for. dans l'exemple ci-dessous, « une_fonction » est le nom de la fonction mystère Je cherche ... Je sais qu'il est facile, juste ne me souviens pas ou semblent être en mesure de le trouver dans la documentation.

comme ceci:

some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
Était-ce utile?

La solution

Rspec a une méthode « params_for », qui utilise des méthodes de routage du contrôleur d'action pour analyser les chemins avec des méthodes dans les routes.

est un peu Leur plus robuste que cela, mais il se résume à:

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

Autres conseils

Avec Rails 3 la meilleure façon est d'utiliser

Rails.application.routes.recognize_path('/posts/1/edit')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top