2015-12-02 7 views
5

Ich muss Benutzer Suchanfragen in unserer Datenbank für die Verfolgung des Suchverlaufs speichern. Ich weiß, dass request.original_url mir den Abfrage-String als absolute URL geben wird.Rails 4 - Was ist der Unterschied zwischen request.original_fullpath und request.fullpath

http://www.example.com/search?utf8=%E2%9C%93&keywords=cars&view=grid 

Ich würde lieber den relativen URL-Pfad speichern. Mit dem gesagt, für eine relative URL mit allen Parametern was ist der Unterschied zwischen request.original_fullpath und request.fullpath? Sie scheinen das Gleiche zu sein?

request.original_fullpath

/search?utf8=%E2%9C%93&keywords=cars&view=grid 

request.fullpath

/search?utf8=%E2%9C%93&keywords=cars&view=grid 

Antwort

7

original_fullpath gibt einen String mit dem zuletzt angeforderten Pfad einschließlich ihrer params.

fullpath gibt den vollständigen Zeichenfolgenpfad einschließlich der Parameter der zuletzt angeforderten URL zurück.

Der Unterschied zwischen original_fullpath und fullpath ist, dass, original_fullpath Verfahrensparameter nicht enthalten, die nicht in der ursprünglichen URL waren (das heißt Parameter, die anstelle von GET via POST gesendet wurden).

+0

Ich schätze die Antwort. Es ist immer noch ein bisschen verwirrend für mich. Für meinen Fall klingt es so, als würde ich den vollständigen Pfad verwenden wollen, da unsere Suche die GET-Anforderungsmethode verwendet und manchmal einige Anfragen über Ajax erledigt werden. Ich möchte sicherstellen, dass ich immer die vollständige Anfrage URL erfasst. –

+0

@Bryan, Genau, "original_fullpath" enthält nicht die POST-Methode params. Wenn Sie also immer die Parameter erfassen wollen, ist die Verwendung von 'fullpath' der richtige Weg. Lass es mich wissen, wenn du andere Fragen hast. –

Verwandte Themen