Was ist das Gegenteil von url_for in Rails? Eine Funktion, die einen Weg nimmt, und erzeugt das interpretierte Strecke?

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

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'}
War es hilfreich?

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
scroll top