Где оптимальное место для размещения ссылки API в Rails 3.1 - PullRequest
2 голосов
/ 10 декабря 2011

Я пытаюсь найти конвейер ресурсов в Rails 3, чтобы поиграться с API Google

"http://maps.google.com/maps/api/js?sensor=false"

1-й вопрос. Лучше ли размещать эту ссылку в представлениях/layouts/application.html.erb или в assets / javascripts / application.js

2-й вопрос

Если я пишу функцию javascript, которая получает аргументы отидентификатор формы в представлении, куда я помещаю эту функцию javascript?Идет ли он напрямую в assets / javascripts / application.js или есть другие места для размещения javascript ..

1 Ответ

3 голосов
/ 10 декабря 2011

Я не уверен, что вы даже можете поместить API карт в application.js.По крайней мере, у меня не получилось в прошлый раз, когда я пытался.

Общая идея application.js заключается в том, что весь контент, на который есть ссылки, будет автоматически уменьшен и сжат в производственной среде.Поскольку это невозможно для API карт, я думаю, вы должны поместить его в свой views/layouts/application.html.erb

. Также обратите внимание, что вы можете не включать API карт на всех своих страницах.Вы можете либо определить макет, который сам ссылается на application.html.erb, либо использовать частичное, либо использовать content_for , чтобы включить страницу только в те места, где она вам нужна.

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

application.html.erb:

<head> 
other stuff
<%= yield :scripts %>
...
</head>

А внутри вашего представления, требующего карты Google:

<% content_for :scripts do %>
<script type="text/javascript" ..... ></script>
<% end %>

Все, что находится внутри блока content_for, будет выводиться там, где выпоместил ваш <%= yield :scripts %>.

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