Лучшая практика для взаимодействия rails-javascript? - PullRequest
1 голос
/ 03 сентября 2010

У меня есть страница, которая показывает карту Google.Я хотел бы использовать Javascript для получения нескольких точек из моей базы данных и размещения их в качестве маркеров на карте.Таким образом, поток выглядит так:

  1. Javascript вызывает действие Rails с параметрами.
  2. Rails запрашивает базу данных.
  3. Rails возвращает ответ.
  4. Javascript обновляет страницу (Rails не может этого сделать, так как он должен знать об объекте карты JS).

Какова текущая лучшая практика для реализации такого сценария?Я знаю, что могу использовать Prototype Ajax.Request для вызова действия Rails, но как мне вызвать функцию Javascript, которая обновляет страницу, когда действие Rails возвращает свои результаты?Должен ли я обновить какой-то скрытый HTML и прослушать прослушиватель событий?Или есть лучший способ?

1 Ответ

3 голосов
/ 03 сентября 2010

У вас есть пара вариантов.

1) Ваш запрос ajax может иметь тип 'script', что позволит вам написать файл action_name .js, который будет отображаться в вашем приложении rails.У него есть доступ ко всем элементам вашей страницы (однако он вряд ли будет иметь доступ к вашему объекту карты, если только он не является общедоступным)

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

  • инициализировать вашу карту
  • запрос для некоторых данных JSON, используя ajax (то есть местоположения с широтой / долготой)
  • rails reponds_to do | f |f.json {render: json => some_hash} end
  • в вашем обратном вызове ajax (обратно в javascript), переберите данные json и добавьте точки на карту соответствующим образом.(или делай что хочешь)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...