Rails definiert eine Menge Magie mit benannten Routen, die Helfer für Ihre Routen sind. Insbesondere bei verschachtelten Routen kann es manchmal etwas verwirrend sein, zu verfolgen, welche URL Sie für einen bestimmten Aufruf der Routenhilfemethode erhalten. Ist es möglich, mithilfe der Ruby-Konsole zu sehen, welchen Link eine bestimmte Hilfsfunktion generiert? Bei einem benannten Helfer wie post_path (post) möchte ich beispielsweise sehen, welche URL generiert wird.
ruby-on-rails
Derek Thurn
quelle
quelle
app.get "/"
dann nur instance_eval die gewünschten Methoden aufrufen , da diese jetzt standardmäßig geschützt sind. So etwas wie:app.instance_eval{ post_path(post) }
app.teh_path
funktioniert immer noch in Rails 4.0 und ist nützlich, um Engine-Pfade von Hauptanwendungspfaden zu trennen.mount Spree::Core::Engine, :at => '/'
montieren, greifen Sie über den Motornamen auf die Pfade zu , zapp.spree_core_engine.some_path
. Oder wenn der "Motorname" so konfiguriert ist, dass er etwas anderes wie in diesem Code ist, würden Sie dies tunapp.spree.some_path
.host
Parameter wieapp.article_url(my_article, host: 'mydomain.com')
du kannst auch
aus einer Konsolensitzung heraus, um auf die Helfer zuzugreifen:
oder
quelle
Rails.application.routes.url_helpers.users_path
?In der Rails-Konsole enthält die Variablen-App ein Sitzungsobjekt, für das Sie Pfad- und URL-Helfer als Instanzmethoden aufrufen können.
quelle
Sie können die Ausgabe
path_helpers
in der Konsole jederzeit überprüfen . Verwenden Sie einfach den Helfer mitapp
quelle
Denken Sie daran, wenn Ihre Route einen Namensabstand hat.
Dann versuche es :
Ausgabe
quelle
spree
Beispiel, du bist ein Engel, der vom Himmel gefallen ist.