使用HAML在Rails中通过Google API加载jQuery?

nee*_*zer 3 jquery haml ruby-on-rails jrails

这感觉应该很简单,但似乎并没有多少装载.

我有这个app/views/layouts/application.html.haml:

= javascript_include_tag 'http://www.google.com/jsapi'
%script{ :type => "text/javascript", :charset => "utf-8" }
  //<![CDATA[
  google.load("jquery", "1.3.2"); 
  google.load("jqueryui", "1.7.2");
  //]]>
= javascript_include_tag 'application'
Run Code Online (Sandbox Code Playgroud)

...我的application.js文件包含一些好的'ole jQuery.我已经安装了JRails,我的jQuery可以正常使用库的本地副本,但我想使用Goolge API中的那些.

这是我的浏览器生成的内容:

<script src="http://www.google.com/jsapi.js" type="text/javascript"></script>
<script charset='utf-8' type='text/javascript'>
  <!-- /<![CDATA[ -->
  google.load("jquery", "1.3.2");
  google.load("jqueryui", "1.7.2");
  <!-- /]]> -->
</script>
<script src="/javascripts/application.js?1255040651" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

我正在使用Safari和错误控制台,它会报告以下错误:

ReferenceError: Can't find variable: google
ReferenceError: Can't find variable: $
Run Code Online (Sandbox Code Playgroud)

相应地,我的jQuery脚本都没有工作.

救命?

cwn*_*nja 9

javascript_include_tag自动将.js放在最后.在使用时似乎没有办法解决这个问题javascript_include_tag.您应该(根据自己的意见)创建自己的脚本标记:

%script{ :src => 'google.com/jsapi', :type => 'text/javascript', :charset => 'utf-8' }
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢跳过jsapi,并直接引用库,所以只需:

= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'
Run Code Online (Sandbox Code Playgroud)