Frage

Ich verwende die GEM Rails3-Jquery-Auto Complete und hatte keine Probleme damit, aber ich habe jetzt mein automatisches Formular in die Anwendungsvorlage verschoben, und daher werden die AJAX-Anrufe nun vom Anwendungscontroller behandelt, sodass meine Routen sich geändert haben.

home/autocomplete_category_name

und jetzt müssen das Haus entfernt und den Weg von:

home_autocomplete_category_name_path

zu:

autocomplete_category_name_path

Hat jemand irgendwelche Ideen? Das Erlernen der Vor- und Nachteile von Schienen, also ist dies eine Sackgasse für mich im Moment.

Vielen Dank.

War es hilfreich?

Lösung

URLs sind nicht direkt zugeordnet ApplicationController - Nur Unterklassen davon.

Sie müssen den Anruf an verschieben autocomplete in einen anderen Controller. Die Position des Formulars sollte keinen Unterschied machen, solange Sie den richtigen Weg bestehen, wenn Sie Ihre definieren text_field

Andere Tipps

Alter Beitrag, aber die akzeptierte Antwort ist falsch. Obwohl der Geist dessen richtig ist - sollten Sie Ihre Methode wahrscheinlich in einen angemesseneren Controller verschieben; aber wenn du pochen Bei der Methode in application_controller.rb

# routes.rb
match '/some_route', to: 'application#some_route', as: :some_route

... wird zur Methode 'slow_route' in application_controller.rb weitergeleitet.

Ein weiterer Necro, aber es gibt eine trockenere Art, dies zu tun, im Vergleich zu Pavling -Lösung

get :autocomplete_category_name, controller:"application"

Ich habe (gestern) versucht, es in den Anwendungscontroller zu verschieben, um zu versuchen, Code besser wiederzuverwenden und ihn nicht an einen bestimmten Controller zu binden. Erst heute wurde mir klar, dass dies keinen Sinn ergibt, da der Controller, der verwendet wurde, um diesen Anruf zu beantworten, ein völlig anderes Objekt sein wird als der Controller, der die Ansicht sowieso rendert.

Mit Rails 4 müssen Sie GET verwenden, nicht übereinstimmen ...

# routes.rb
get '/autocomplete_category_name', to: 'application#autocomplete_category_name', as: :autocomplete_category_name

Versuchen Sie etwas wie

match "home/autocomplete_category_name", "home#autocomplete_category_name", :as => "autocomplete_category_name"

Verwenden Sie in Rails 4 Folgendes:

get 'application/autocomplete_category_name', as: 'autocomplete_category_name'

Sie haben an Ihren Links 'autocomplete_category_name_path' 'Links

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top