Ich habe auf meiner Site ein Suchformular, das es einem Benutzer ermöglicht, nach vielen verschiedenen Facetten zu suchen, wie Stadt, Preisspanne, Größe, usw.
Das Formular wird als GET übergeben, so dass sich die Formularparameter in der URL befinden.
am Ende sind sie ziemlich hässlich:
/ sucht? utf8 = ✓ & amp; city_region = vancouver & amp; property_type_id = 1 & amp; min_square_footage = 0 & amp; max_square_footage = 15000
(sie sind sogar noch schlimmer, weil die Suchparameter Teil eines Modells sind, also gibt es auch viele codierte ['s und] in der URL)
was ich tun möchte, ist stattdessen das Formular generieren eine URL wie:
/ suche / vancouver / office? square_footage = 0-15000
wobei einige der Parameter in den URL-Pfad selbst eingefügt werden, während andere in den Abfrageparametern verbleiben (in einem etwas besser lesbaren Format).
Was wäre der beste Weg, dies in einer Schienenanwendung zu handhaben? Alles, was ich mir vorstellen kann, ist die Verwendung von JavaScript-Code auf dem Formular submit, um die URL zu manipulieren, die das Formular übermittelt.
Alles, was Sie brauchen, ist ein Routing für diese Art von Seite zu erstellen.
Wenn Sie auf Rails 3 sind:
%Vor%(diese Klammern beziehen sich auf einige Variablen, die optional sind)
Dann können Sie es in Ihrer Ansicht mit etwas wie sagen:
%Vor%TLDR: Die einzige Möglichkeit, dies zu tun, besteht darin, ein Ajax auf dem Formular und dann eine Umleitung zu verwenden.
Richten Sie das Click-Ereignis auf Ihrer Suchschaltfläche ein, um einen Ajax-Formular-Post an eine Controller-Methode auszulösen.
Dann benutze die Magie in Jacks Antwort und rufe eine Weiterleitung mit deiner freundlichen URL auf, die du generierst ... Vergiss nicht, wenn du willst, dass Google deine freundlichen URLs findet, musst du sie statisch auf einer Seite haben. Wenn Sie sich nicht für SEO interessieren, dann sollte Ihre Lösung ziemlich einfach sein.
Tags und Links ruby-on-rails forms