Rails:ReferenceError:未定义谷歌

Posted

技术标签:

【中文标题】Rails:ReferenceError:未定义谷歌【英文标题】:Rails: ReferenceError: google is not defined 【发布时间】:2013-05-09 06:24:36 【问题描述】:

我的 application.js 上出现“ReferenceError: google is not defined”错误

这是我的 js 包含的内容:

$(document).ready(function()
var input = document.getElementById('searchTextField');
var options = 
types: [],
componentRestrictions: country: 'in'
;
var autocomplete = new google.maps.places.Autocomplete(input, options);
);

不明白为什么会出现这个错误。我的搜索功能运行正常,但 Web 控制台出现此错误。

谁能告诉解决方案?

【问题讨论】:

呃,您是在加载 Google 地图 API JS 文件吗?您可能需要发布更多代码,因为到目前为止您发布的内容中没有这些代码 @duncan 这就是我要发布的内容:"searchTextField", :class=> "homecatg" %> 【参考方案1】:

正如duncan 所说,问题可能出在包含标签上。

我在显示页面的顶部包含了 GoogleMaps API(所以在 HEAD 标记之外)

<%= javascript_include_tag "https://maps.google.com/maps/api/js?key=#ENV['GOOGLE_MAPS_API_KEY']" %> 

摆脱这个

ReferenceError: google 未定义

我将包含 API 的位置从显示页面顶部更改为 layouts/application.html.erb 到 head 标签中。

<head>
<%= javascript_include_tag "https://maps.google.com/maps/api/js?key=#ENV['GOOGLE_MAPS_API_KEY']" %> 
</head>

【讨论】:

【参考方案2】:

请更改顺序: 第一个

<script src="maps.googleapis.com/maps/api.... >

然后

 <%= text_field_tag 'search', nil, :id=>"searchTextField", :class => "homecatg" %>

在这种情况下,google 将在使用前定义。

【讨论】:

以上是关于Rails:ReferenceError:未定义谷歌的主要内容,如果未能解决你的问题,请参考以下文章

简单的 Rails 应用程序 - 未捕获的 ReferenceError:$ 未定义

Ruby on Rails - 未捕获的 ReferenceError:$ 未定义

Ruby on Rails - 未捕获的ReferenceError:$未定义

Uncaught ReferenceError: $ is not defined in Rails 6 jquery webpacker

未捕获的引用错误,未定义通知

Uncaught ReferenceError: $ is not defined in Rails 6 webapp search bar