Wie bekomme ich die aktuelle absolute URL in Ruby on Rails?
Wie bekomme ich die aktuelle absolute URL in meine Ruby on Rails?
Den request.request_uri
gibt nur die relative URL.
InformationsquelleAutor der Frage Jakub Arnold | 2010-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Rails 3.2 oder Schienen 4+
Sollten Sie verwenden
request.original_url
um die aktuelle URL.Diese Methode ist dokumentiert bei original_url Methodeaber wenn du neugierig bist, die Umsetzung ist:
Für Rails 3:
Schreiben Sie
"#{request.protocol}#{request.host_with_port}#{request.fullpath}"
darequest.url
ist jetzt veraltet.Für Schiene 2:
Schreiben Sie
request.url
stattrequest.request_uri
. Dies verbindet sich das Protokoll (meist http://) mit dem host, und request_uri geben Sie die vollständige Adresse an.InformationsquelleAutor der Antwort
Denke ich, dass das Ruby on Rails-3.0-Methode ist nun
request.fullpath
.InformationsquelleAutor der Antwort mcr
Könnten Sie
url_for(:only_path => false)
InformationsquelleAutor der Antwort grzuy
DEPRECATION WARNUNG: Mit #request_uri ist veraltet. Verwenden fullpath statt.
InformationsquelleAutor der Antwort ecoologic
Wenn Sie Rails 3.2 oder Schienen 4die Sie verwenden sollten
request.original_url
um die aktuelle URL.Dokumentation für die Methode ist bei http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_url aber wenn du neugierig bist und die Umsetzung ist:
InformationsquelleAutor der Antwort Mike
Können Sie diese current_url Methode im ApplicationController, um das aktuelle URL und ermöglichen das Zusammenführen anderen Parametern
Beispiel:
InformationsquelleAutor der Antwort grosser
Für Ruby on Rails 3:
Feuerte ich eine debugger-Sitzung abgefragt und die Anfrage Objekt:
InformationsquelleAutor der Antwort Duke
In Ruby on Rails-3.1.0.rc4:
InformationsquelleAutor der Antwort Lucas Renan
Brauchte ich die Anwendung URL aber mit dem Unterverzeichnis. Verwendet habe ich:
InformationsquelleAutor der Antwort Dorian
Und man kann leicht fügen Sie einige neue parameter:
InformationsquelleAutor der Antwort Yuri Barbashov
Ich glaube Anfrage.domain funktionieren würde, aber was ist, wenn Sie in einem sub-Verzeichnis wie blah.blah.com? So etwas wie dies funktionieren könnte:
Ändern Sie die Parameter nach Ihrem Pfad-Struktur.
Hoffe, das hilft!
InformationsquelleAutor der Antwort James M
Sieht es aus wie
request_uri
veraltet ist, in Ruby on Rails 3.InformationsquelleAutor der Antwort Ken Earley
Dies funktioniert für Ruby on Rails 3.0 und sollten unterstützt werden durch die meisten Versionen von Ruby on Rails:
InformationsquelleAutor der Antwort Tim Santeford
Mit Ruby-1.9.3-p194 und Ruby on Rails 3.2.6:
Wenn Anfrage.fullpath nicht für Sie arbeiten, versuchen Sie Anfrage.env["HTTP_REFERER"]
Hier ist meine story unten.
Ich habe ähnliche problem mit der Erkennung der aktuellen URL (siehe Adressleiste für den Benutzer in seinem browser) für die kumulative Seiten, die kombiniert Daten von verschiedenen Controllern, zum Beispiel
http://localhost:3002/users/1/history/issues
.Den Benutzer wechseln kann, um verschiedene Listen von Arten von Fragen. Alle diese Listen geladen werden, die per Ajax von den verschiedenen Steuerungen/partials (ohne nachladen).
Das problem war, den richtigen Weg für Sie die zurück-Taste in jedem Element der Liste, so dass Sie die zurück-Taste könnte funktionieren einwandfrei beide in seine eigene Seite und in der kumulativen Seite Geschichte.
Wenn ich Anfrage.fullpathes gibt den Weg der letzten JavaScript-Anfragen, die definitiv nicht die URL die ich Suche.
So habe ich Anfrage.env["HTTP_REFERER"] - speichert die URL der letzten reloaded Anfrage.
Hier ein Auszug aus der teilweise eine Entscheidung zu treffen
InformationsquelleAutor der Antwort Serge Seletskyy
Keiner der Vorschläge hier im thread hat mir geholfen, leider, außer dem einen, wo jemand sagte, er verwendet den debugger zu finden, was er suchte.
Habe ich einige eigene Fehler-Seiten anstelle der standard-404 und 500, aber
request.url
endete in/404
statt der erwarteten/non-existing-mumbo-jumbo
.Was ich brauchte, um war
InformationsquelleAutor der Antwort Frans
Wenn die relative, meinst du einfach, ohne die domain, dann suchen Sie in
request.domain
.InformationsquelleAutor der Antwort ghoppe
Können Sie die ruby-Methode:
die bekommen den vollständigen Pfad mit der Basis-url:
InformationsquelleAutor der Antwort Idan Wender
InformationsquelleAutor der Antwort msroot
In Rails 3 können Sie
http://apidock.com/rails/v3.2.8/ActionDispatch/Request/original_url
InformationsquelleAutor der Antwort mikrobi
Rails 4.0
können Sie
request.original_url
-, Ausgabe -, werden wie unten angegeben BeispielInformationsquelleAutor der Antwort Arvind singh
wenn Sie wollen spezifisch sein, das heißt, Sie kennen den Weg, die Sie brauchen:
InformationsquelleAutor der Antwort Victor S
Für rails 3 :
InformationsquelleAutor der Antwort Pankhuri
können Sie ein beliebiges für rails 3.2:
Ich denke, es wird funktionieren, wo jeder
InformationsquelleAutor der Antwort uma
arbeitet in rails 2.3.4 getestet und weiß nicht, über andere Versionen.
InformationsquelleAutor der Antwort Satishakumar Awati
Zu bekommen, die Anfrage-URL ohne query-Parameter.
InformationsquelleAutor der Antwort Nerve
Können Sie entweder
oder
um die aktuelle URL.
InformationsquelleAutor der Antwort Robin Garg
Können Sie verwenden:
oder
Ich hoffe, es wird Ihr problem zu lösen.
Cheers
InformationsquelleAutor der Antwort Ali Hassan Mirza
Können Sie eine variable, um
URI.parse(current_url)
sehe ich nicht ein, diesen Vorschlag hier noch nicht und es funktioniert für mich.InformationsquelleAutor der Antwort RaK427
Um die absolute URL, was bedeutet, dass die
from the root
es angezeigt werden kann, wie diesDen users_url Helfer erzeugt ein URL beinhaltet das Protokoll, und host
name. Die users_path Helfer erzeugt nur den Pfad-Teil.
InformationsquelleAutor der Antwort Ahmad hamza
Schienen 4
Controller:
Action Mailer Bemerkenswerte Veränderungen in In Version 4.2:
link_to und url_for Generierung von absoluten URLs standardmäßig in Vorlagen, ist es nicht mehr erforderlich, um pass only_path: false. (Commit)
Anzeigen:
Wenn Sie die
_url
suffix, die generierte URL ist absolut. Verwenden_path
um eine relative URL.Für Mehr Details, gehen Sie zu:
http://blog.grepruby.com/2015/04/absolute-url-full-url-in-rails-4.html
InformationsquelleAutor der Antwort user3118220