Wie kann ich die aktuelle absolut URL in meiner Ruby on Rails-Ansicht?
Le site request.request_uri
gibt nur die relativ URL.
Wie kann ich die aktuelle absolut URL in meiner Ruby on Rails-Ansicht?
Le site request.request_uri
gibt nur die relativ URL.
Ich denke, request.domain würde funktionieren, aber was ist, wenn Sie sich in einem Unterverzeichnis wie blah.blah.com befinden? Etwas wie dies könnte funktionieren:
<%= request.env["HTTP_HOST"] + page = "/" + request.path_parameters['controller'] + "/" + request.path_parameters['action'] %>
Ändern Sie die Parameter entsprechend Ihrer Pfadstruktur.
Ich hoffe, das hilft!
Verwendung von Ruby 1.9.3-p194 und Ruby on Rails 3.2.6:
Si request.fullpath bei Ihnen nicht funktioniert, versuchen Sie request.env["HTTP_REFERER"]
Im Folgenden wird meine Geschichte erzählt.
Ich habe ein ähnliches Problem mit der Erkennung der aktuellen URL (die in der Adressleiste des Browsers des Benutzers angezeigt wird) für kumulative Seiten, die z. B. Informationen aus verschiedenen Controllern kombinieren, http://localhost:3002/users/1/history/issues
.
Der Benutzer kann zu verschiedenen Listen von Problemtypen wechseln. Alle diese Listen werden über Ajax von verschiedenen Controllern/Partials geladen (ohne Nachladen).
Das Problem bestand darin, den richtigen Pfad für die Schaltfläche "Zurück" in jedem Element der Liste festzulegen, damit die Schaltfläche "Zurück" sowohl auf der eigenen Seite als auch auf der kumulativen Seite korrekt funktioniert Geschichte .
Für den Fall, dass ich request.fullpath wird der Pfad der letzten JavaScript-Anforderung zurückgegeben, was definitiv nicht die URL ist, nach der ich suche.
Ich habe also request.env["HTTP_REFERER"] die die URL der letzten neu geladenen Anfrage speichert.
Hier ein Auszug aus dem Teil zur Entscheidungsfindung
- if request.env["HTTP_REFERER"].to_s.scan("history").length > 0
- back_url = user_history_issue_path(@user, list: "needed_type")
- else
- back_url = user_needed_type_issue_path(@user)
- remote ||= false
=link_to t("static.back"), back_url, :remote => remote
Keiner der Vorschläge hier im Thread hat mir leider geholfen, außer dem, in dem jemand sagte, er habe den Debugger benutzt, um zu finden, was er suchte.
Ich habe einige benutzerdefinierte Fehlerseiten anstelle der Standard 404 und 500 erstellt, aber request.url
endete in /404
statt der erwarteten /non-existing-mumbo-jumbo
.
Was ich verwenden musste, war
request.original_url
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.