Как вы направляете действие на контроллер приложения в Rails 3? - PullRequest
15 голосов
/ 24 января 2011

Я использую gem rails3-jquery-autocomplete и у меня не было проблем с ним, однако теперь я переместил свою форму автозаполнения в шаблон приложения, и поэтому вызовы ajax теперь обрабатываются контроллером приложения, поэтому мои маршруты изменено с:

home/autocomplete_category_name

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

home_autocomplete_category_name_path

до:

autocomplete_category_name_path

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

Спасибо.

Ответы [ 6 ]

29 голосов
/ 21 марта 2013

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

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

... будет маршрутизировать метод some_route в application_controller.rb.

9 голосов
/ 24 января 2011

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

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

7 голосов
/ 17 октября 2013

Еще один некро, но есть более дружественный к СУХОЙ способ сделать это, по сравнению с решением Павлинга

get :autocomplete_category_name, controller:"application"

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

1 голос
/ 21 декабря 2013

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

# routes.rb
get '/autocomplete_category_name', to: 'application#autocomplete_category_name', as: :autocomplete_category_name
0 голосов
/ 01 мая 2018

В Rails 4 используйте это:

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

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

0 голосов
/ 24 января 2011

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

match "home/autocomplete_category_name", "home#autocomplete_category_name", :as => "autocomplete_category_name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...