Was ist das Gegenteil von url_for in Rails? Eine Funktion, die einen Weg nimmt, und erzeugt das interpretierte Strecke?
-
19-09-2019 - |
Frage
Gehirn ist ein wenig gebraten .... Wie bekomme ich einen Hash der: Controller und: Aktion von einem relativer_Pfad
Dies ist im Grunde das Gegenteil von url_for. im Beispiel unten „some_function“ ist der Geheimnis Funktionsname Ich suche ... Ich weiß, es ist einfach, kann mich nicht erinnern oder scheint es in der Dokumentation in der Lage sein zu finden.
Wie so:
some_function('/posts/1/edit')
=> {:controller => 'posts', :action => 'edit', :id => '1'}
Lösung
Rspec hat eine Methode ‚params_for‘, die Action-Controllers Routing-Methoden verwenden Pfade mit Methoden in Routen zu analysieren.
Sie sind etwas robuster als diese, aber es läuft darauf hinaus:
def params_for(path, method)
params = ActionController::Routing::Routes.recognize_path(path, :method => method)
end
Andere Tipps
Mit Rails 3 der beste Weg ist, zu verwenden,
Rails.application.routes.recognize_path('/posts/1/edit')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow