2013-08-23 19 views
4

我有一个Rails应用程序,它包含大约20页,仅在我使用Google地图的两个页面上。仅在Rails应用程序中的某些页面上加载Google地图脚本

有没有什么更好的方法来完全加载某些页面比这个谷歌地图API的脚本(head标签):

<%= javascript_include_tag "https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false" if params[:controller] == "shops" && params[:action] == "index" %>

回答

5

在你的头布局文件使用下面的代码

<%= yield :head %> 

然后在你想要包含javascript的页面的视图文件中做到这一点;

<% content_for :head do %> 
    <%= javascript_include_tag "https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false" %> 
<% end %> 

你可以随时随地把这个content_for块在您的视图文件,它会在文档的头部呈现在您这里定义yield :head

更多信息http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield这里http://guides.rubyonrails.org/layouts_and_rendering.html#using-the-content-for-method

+1

据总是最好把所有的javascripts放在页面的页脚处。虽然它不是强制性的,但建议。 – techvineet

+0

很好的建议。在这个例子中'yield:head'可以很容易地在布局文件的文档底部使用,如果你喜欢,你也可以重命名':head'。 – ADAM

相关问题