2013-10-01 2 views
0

У меня есть модель «Игрок», а при загрузке главной страницы отображается изображение случайного игрока. При нажатии, она увеличивает поле (num_clicks) на этом игрок на 1.Корректировка рельсов в соответствии с соглашением относительно запросов AJAX

Прямо сейчас у меня есть:

  • JQuery, который прослушивает событие щелчка на картинке
  • Это делает запрос AJAX к сервер на static_pages_controller # player_clicked, посылая ID игрока, который хранится в DOM
  • контроллер обновляет поле игрока, и посылает новые значения обратно (с помощью JSON) к успеху обратного вызова просьбе Аякса
  • успех обратного вызова затем использует jQuery для i nsert новое значение в DOM

Все jQuery для этой функции находится в /home.js.coffee, это подходящее место, чтобы поместить это?

Должен ли я использовать link_to на картинке вместо клик-прослушивателя на картинке?

На странице home (при загрузке) отображаются файлы @ player.num_clicks, поэтому было бы неплохо, если бы этот номер автоматически обновлялся, вместо того чтобы перезаписать его (в обратном вызове AJAX) с новым значением, предоставленным сервером. Это возможно?

В настоящее время я работаю в основном, но я уверен, что это не «путь рельсов», и я хотел бы обратиться к этому. Благодаря!

ответ

1

Да, используйте ссылку_to с изображением и внесите это изменение. Рельсы способом будет использование link_to с выносным => верно

<%=link_to ...., :remote => true%> 

и на контроллере # действии написать JS эрб шаблон как приложение/просмотров/static_pages/player_clicked.js.erb, который будет иметь все JavaScript, которые вы написали успешный обратный вызов.

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

Надеюсь, это поможет.

+0

Спасибо! Как мне обрабатывать другие аспекты вызова AJAX (например, beforeSend, Error, AfterSuccess и т. Д.) – jackerman09

+0

Для обратных вызовов посмотрите на это http://stackoverflow.com/q/8955216/1460496 – techvineet

+0

Не является ли плакат в этой теме, предлагающий используя jQuery обратные вызовы, которые я уже делаю сейчас? Какая польза от перехода на link_to, если мне понадобится делать это с событиями jQuery? – jackerman09

Смежные вопросы