Jquery & Rails 3: Запустить действие контроллера из файла js? - PullRequest
1 голос
/ 21 июля 2011

Я хотел бы щелкнуть элемент div на странице, чтобы запустить определенное количество задач javascript, а также запустить действие на контроллере. Чтобы объяснить более подробно:

У меня есть файл без названия .js, в который я поместил кучу кода jquery:

 $(function(){
$('nav li').hover(function(){
        $(this).addClass("bigger", 50);
    }, function(){
        $(this).removeClass("bigger", 50);
});

$('#notify').click(function(){
        $('.notifications').show();
});

$('#notify').click(function(){
        (some code to run a controller action)
});


 });

Я хотел бы запустить действие контроллера «run_tasks» на контроллере «Пользователи» при нажатии кнопки #notify, а также показать класс уведомлений. Как вы можете видеть в приведенном выше коде, у меня есть код jquery для показа .notifications, но я не знаю, что вставить «(некоторый код для запуска действия контроллера)». Чтобы предоставить информацию о действии контроллера, он просто запустит некоторые задачи, которые я хочу запустить, он не перенаправит на новую страницу или что-то еще. Вот основной формат контроллера пользователя:

 class UsersController < ApplicationController
      ....
      def run_tasks

      end
 end

Возможно ли то, что я пытаюсь сделать, и если да, то какой jquery-код я добавлю туда? Я использую Rails 3.0.9 и новейший jquery.

1 Ответ

5 голосов
/ 21 июля 2011

Пока у вас есть маршрут для этого действия контроллера, вы можете запустить его, просто отправив ему ajax-запрос с помощью $. Get () .

jQuery.
$('#notify').click(function(){
    $('.notifications').show();
    $.get('/users/run_tasks');
});

Нет необходимости делать два $('#notify').click(), вы можете поместить два оператора в один блок (как я делал в приведенном выше фрагменте кода).

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

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