在Rails 3.1中放置API链接的最佳位置在哪里

时间:2011-12-09 20:06:02

标签: ruby-on-rails

我正试图弄清楚Rails 3中的资产管道来玩Google api

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

第一个问题。最好将该链接放在views / layouts / application.html.erb或assets / javascripts / application.js

第二个问题

如果我正在编写一个javascript函数,从视图中的表单id获取其参数,我在哪里放置该javascript函数?它是直接在assets / javascripts / application.js中还是在其他地方放置javascript ..

1 个答案:

答案 0 :(得分:3)

我不确定您是否可以将地图API放入application.js。至少上次我尝试时它对我不起作用。

application.js的一般概念是,在那里引用的所有内容都将在生产环境中自动缩小和压缩。由于地图API不可能,我猜你应该将它放入views/layouts/application.html.erb

另请注意,您可能不希望在所有网页上都包含地图API。您可以定义一个本身引用application.html.erb的布局,也可以使用部分布局或使用content_for仅将页面包含在您需要的位置。

我过去做过的一件事(可能有更好的方法)是在布局的head部分定义一个占位符,然后使用它来注入只在少量页面上需要的脚本。像这样:

application.html.erb

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

在您的视图中需要谷歌地图:

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

在您放置<%= yield :scripts %>

的位置输出content_for块内的任何内容