Вопрос

Я использую Gem Rails3-JQUERY-AutoCoplete и не имел никаких проблем с ним, однако теперь я перенес свою форму автозаполнения в шаблон приложения, и поэтому вызовы AJAX теперь рассматриваются контроллером приложений, поэтому мои маршруты изменились с:

home/autocomplete_category_name

и теперь нужно удалить дом и путь от:

home_autocomplete_category_name_path

к:

autocomplete_category_name_path

У кого -нибудь есть идеи? Все еще изучая тонкости рельсов, так что это сейчас тупик для меня.

Спасибо.

Это было полезно?

Решение

URL -адреса не отображаются напрямую на ApplicationController - только подклассы этого.

Вам нужно переместить звонок autocomplete в другой контроллер. Расположение формы не должно иметь значения, если вы проходите правильный путь, когда вы определяете свой text_field

Другие советы

Старый пост, но принятый ответ неверен. Хотя дух его правильный - вы, вероятно, должны перенести свой метод к более подходящему контроллеру; но если ты настаивать При наличии метода в Application_controller.rb

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

... будет направлено на метод «some_route» в Application_controller.rb.

Еще один некро, но есть более сухой способ сделать это, по сравнению с решением Pavling

get :autocomplete_category_name, controller:"application"

Я пытался (вчера) перенести его в контроллер приложений, чтобы попытаться лучше использовать код и не связать его с конкретным контроллером. Только сегодня я понял, что это не имеет смысла, так как контроллер, используемый для ответа на этот вызов, будет совершенно другим объектом для контроллера, который в любом случае, представляющий представление.

Используя Rails 4, вы должны использовать Get, а не совпадать ...

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

Попробуйте что -то вроде

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

В рельсах 4 используйте это:

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

У вас есть 'autocomplete_category_name_path' вам ссылки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top