Как добавить пользовательский JavaScript в мои rails3 представления? - PullRequest
2 голосов
/ 08 июля 2010

Каков наилучший способ добавить JavaScript в мои представления Rails3?

Я хотел бы иметь возможность выполнить некоторую обработку в контроллере, затем создать некоторый JavaScript на основе результата и поместить полученный JavaScript в представление.

Например, я хотел бы получить серию точек широты / долготы из базы данных и создать маркеры на карте Google. Инициализация карты и маркеры должны быть созданы в JavaScript, но взаимодействовать с представлением. (Это всего лишь один пример того, что я пытаюсь выполнить. Я не ищу рекомендаций для гемов / плагинов, которые обеспечивают интеграцию с Google Maps).

Есть ли способ визуализации файла js.erb в заголовок определенного представления? Что такое "рельсовый способ" делать подобные вещи?

1 Ответ

4 голосов
/ 14 июля 2010

Если вы хотите добавить JavaScript перед загрузкой страницы вообще - т.е. не через Ajax - тогда нет особой причины, по которой вы не могли бы просто создать частичку _javascript.html.erb, содержащую теги сценария, а затем выполнить на ваш взгляд следующее:

<%= render 'javascript' %>

Код в _javascript.html.erb будет иметь доступ к переменным экземпляра, установленным в вашем контроллере, и вы можете записать его так же, как файл .js.erb.

(В качестве альтернативы вы можете использовать <%= yield :head %> в разделе <head> вашего файла макета и затем <content_for :head do %><%= render 'javascript' %><% end %> в ваших представлениях, если вы хотите, чтобы скрипт был в <head>.)

Если вы хотите запустить JavaScript на странице, следующей за Ajax-запросом, тогда просто вставьте код в файл my_action.js.erb и, если потребуется, интерполируйте <%= @my_instance_variable.value %> - полученный код будет запущен на вашей странице после запрос заканчивается.

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