Quel est le contraire de url_for dans Rails? Une fonction qui prend une trajectoire et génère le trajet interprété?
-
19-09-2019 - |
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'}
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