Rails 3 - ссылка / кнопка для запуска ajax-запроса без перенаправления - PullRequest
3 голосов
/ 27 сентября 2011

Каков наилучший способ для ссылки выполнить команду ajax (я использую jquery в Rails 3.1)?До сих пор я пытаюсь использовать ссылку для запуска кода через действие контроллера "update_me".

views/products/new.html.erb имеет следующую строку:

<%= link_to "Update", :action => 'update_me' %>

В моем контроллере продуктов у меня есть:

def update_me
    logger.debug 'ajax code will be here'
end

Но это приводит к ошибке отсутствующего шаблона:

Отсутствует шаблон

Отсутствует шаблон products / update_me, application / update_me с {: handlers => [: erb,: builder,: coffee],: format => [: html],: locale => [: en,: en]}.Поиск в: * "/ home / ubuntu / code / preevio / app / views" * "/home/ubuntu/.rvm/gems/ruby-1.9.2-p290@rails31/gems/devise-1.4.3/app/views "

Почему мне нужно иметь update_me.html.erb в моих представлениях?Я предполагаю, что это то, что они хотят.Разве я не могу просто запустить код в действии / методе контроллера без необходимости его просмотра?Или я подхожу к этому неправильно?

Ответы [ 2 ]

3 голосов
/ 08 февраля 2013

Я знаю, что этот ответ немного запоздал, но я публикую его для всех, кто может попасть сюда, пытаясь сделать что-то подобное.

Если вы измените свою строку HTML на

<%= link_to "Update", :action => 'update_me', :remote => true %>

Там должна быть ссылка на предоставленное действие и сделать вызов ajax за вас.

Вы можете посмотреть предоставленную ссылку, чтобы увидеть документы.

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

0 голосов
/ 27 сентября 2011

Поскольку в Rails есть соглашение о конфигурации, Rails ожидает соответствующего представления для действия в контроллере.

Если вы не хотите ничего визуализировать: http://guides.rubyonrails.org/layouts_and_rendering.html#using-render

render :nothing => true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...