当我运行涉及启用了gmaps4rails的模型的rake任务时,我得到了这个错误,如果我对模型进行评论,那么它就不是acts_as_gmappable,而是正确完成.
enter code here
troy$ rake populate:scans --trace
** Invoke populate:scans (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute populate:scans
http://goo.gl/fb/977ze
Sat, 16 Jul 2011 19:43:59 GMT
47.676506
-122.121872
91df0f32209c5212XXXXXXXXXXXXXXX
rake aborted!
undefined method `gmaps' for #<Scan:0x000001051fb9a8>
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/attribute_methods.rb:392:in `method_missing'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/attribute_methods.rb:46:in `method_missing'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/gmaps4rails-0.9.1/lib/gmaps4rails/acts_as_gmappable.rb:12:in `process_geocoding'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:415:in `_run_validate_callbacks'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations.rb:212:in `run_validations!'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations/callbacks.rb:67:in `block in run_validations!'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.9/lib/active_support/callbacks.rb:414:in `_run_validation_callbacks'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations/callbacks.rb:67:in `run_validations!'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.9/lib/active_model/validations.rb:179:in `valid?'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/validations.rb:55:in `valid?'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/validations.rb:75:in `perform_validations'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/validations.rb:43:in `save'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/attribute_methods/dirty.rb:21:in `save'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/transactions.rb:240:in `block (2 levels) in save'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/transactions.rb:292:in `block in with_transaction_returning_status'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in `transaction'
/Users/troy/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.9/lib/active_record/transactions.rb:207:in …Run Code Online (Sandbox Code Playgroud) 我正在使用apneadiving/Google-Maps-for-Rails添加谷歌地图支持(感谢真棒宝石)
我发现了一个轻微的故障,这很可能是我的错.
当有多个标记时,auto_zoom很有效.但是,当只有一个标记时,它会放大到最大级别,这不是很漂亮.
"zoom"仅在auto_zoom为false时有效,因此这不是我想要的.
因此,您可以使用"maxZoom",但现在用户无法在该点之外手动放大,这不是我想要的.
有没有解决的办法?我的解释有意义吗?这是Google Maps API的限制吗?
谢谢...
我已经在我的rails 4应用程序中使用了gmaps4rails,我的lcoation有标记,我想在每个位置的标记中包含一个链接到每个位置的各个节目视图.
我的空间控制器索引操作如下所示:
def index
@spaces = Space.all
@hash = Gmaps4rails.build_markers(@spaces) do |space, marker|
marker.lat space.latitude
marker.lng space.longitude
marker.infowindow render_to_string(:partial => "/spaces/infowindow", :locals => { :object=> space})
end
end
Run Code Online (Sandbox Code Playgroud)
我的信息部分是:
<%= link_to "Show", space_path(space) %>
Run Code Online (Sandbox Code Playgroud)
我的space/index.html视图中的gmaps4rails javascript脚本是:
<script>
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
</script>
Run Code Online (Sandbox Code Playgroud)
当我尝试加载我的空间索引页面时,我收到以下错误消息:
undefined local variable or method `space' for #<#<Class:0x4638c48>:0x5335f20>
Run Code Online (Sandbox Code Playgroud)
基于我之前的搜索,这似乎是在标记的信息窗口中获取链接的方法,但如果有替代解决方案,我很乐意听到它,谢谢.
我正在开发Rails中的Web应用程序.当我打开标记时,会在框中弹出一个带有街景的模态.我可以打开一个或两个标记,但之后我得到一个WebGL遇到障碍的错误.我试图在网上寻找资源,但没有任何意义.有关详细信息,请参见下面的图片.任何帮助将不胜感激.
这是我的控制台日志的图像:
这是我的webapp中的JavaScript代码.
<script type="text/javascript">
var handler = Gmaps.build('Google', {
markers: {
clusterer: {
gridSize: 60,
maxZoom: 20,
styles: [
{
textSize: 10,
textColor: '#ff0000',
url: 'assets/creative/m1.png',
height: 60,
width: 60,
},
{
textSize: 14,
textColor: '#ffff00',
url: 'assets/creative/m2.png',
height: 60,
width: 60,
},
{
textSize: 18,
textColor: '#0000ff',
url: 'assets/creative/m3.png',
width: 60,
height: 60,
},
],
},
},
});
var handler2 = Gmaps.build('Google');
var current;
function initialize() {
handler.buildMap({ internal: {id: 'map'} }, function () {
markers_json = …Run Code Online (Sandbox Code Playgroud) javascript google-maps ruby-on-rails google-maps-api-3 gmaps4rails
我在Active Admin中使用Gmaps4Rails(Google Maps for Rails).到目前为止一切都很好,除了我必须在同一个节目页面上添加多个地图.
gem 'gmaps4rails', '~> 2.1', '>= 2.1.2'
我将脚本的导入提取为一个html,我只在show视图中调用一次,所以我没有收到错误:
/views/admin/_map_include_scripts.html.erb
<script src="//maps.google.com/maps/api/js?key=<%= ENV['GOOGLE_KEY'] %>"></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<script src='//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js' type='text/javascript'></script>
Run Code Online (Sandbox Code Playgroud)
然后在节目中我做:
div id: 'map' do
render '/admin/map_include_scripts'
markers = DeliveryMarkersService.new(delivery).orders_markers
render '/admin/map_scripts', markers: markers, map_div_id: 'map'
end
Run Code Online (Sandbox Code Playgroud)
在views/admin/_map_scripts.html.erb我有:
<script>
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: { id: '<%= map_div_id %>' }}, function(){
markers = handler.addMarkers(<%=raw markers.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(15);
});
</script>
Run Code Online (Sandbox Code Playgroud)
到目前为止它工作得很棒!我看到地图,标记,一切.
现在我想添加第二个div与第二个map,所以我首先尝试将第一个div更改为以下内容以验证我可以告诉Gmaps在哪个div中显示它:
div id: 'map2' do
render '/admin/map_include_scripts'
markers = DeliveryMarkersService.new(delivery).orders_markers …Run Code Online (Sandbox Code Playgroud) 我试图安装gmaps4rails gem.
我添加gem 'gmaps4rails'到我的Gemfile中,然后跑了'bundle install.它说我的捆绑安装成功了.我能找到"Using gmaps4rails (0.8.8)"与'gem list'.我添加了一个特定的列到我的用户表,rake db:migrate并添加acts_as_gmappable和gmaps4rails_address方法,以我的User模型.
涉及用户模型的访问页面给出了"undefined local variable or method 'acts_as_gmappable'"错误.
有什么东西我错过了吗?
对于更好的上下文,我使用的代码来自Rails 3教程.
OS X 10.6.6
红宝石1.8.7
导轨3.0.7
乘客3.0.7
如何仅使用gmaps4rails加载地图边界内的标记?当然,在平移和/或缩放后加载新的.
与此直接相关,我如何获得地图的当前边界和缩放级别?
提交空地址字段时遇到以下错误.
Gmaps4rails :: LocationsController中的GeocodeInvalidQuery #create你必须提供一个地址
我的模特
class Location < ActiveRecord::Base
validates :address, :presence => true
acts_as_gmappable
def gmaps4rails_address
address
end
def gmaps4rails_infowindow
"<h4>#{name}</h4>" << "<h4>#{address}</h4>"
end
end
Run Code Online (Sandbox Code Playgroud)
问题为什么它永远不会验证地址字段是否存在并直接抛出错误?
我正在使用gmaps4rails,并尝试开发一些测试.
我有一家工厂
factory :country do
sequence(:name) { |n| "Country#{n}" }
end
Run Code Online (Sandbox Code Playgroud)
这显然不被谷歌认可.
Validation failed: Gmaps4rails address Address invalid
Run Code Online (Sandbox Code Playgroud)
API调用也需要时间在我的测试中运行.
如何将API调用存根?
我试过添加
before(:each)
Country.stub(:geocode)
end
Run Code Online (Sandbox Code Playgroud)
到spec文件,但它没有任何效果.
我的模型看起来像这样
class Country < ActiveRecord::Base
acts_as_gmappable :lat => 'latitude', :lng => 'longitude'
def gmaps4rails_address
"#{self.name}"
end
geocoded_by :gmaps4rails_address
after_validation :geocode
end
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何想法.
我在这里遵循简单的教程:https://github.com/JonKernPA/gmaps
我一直收到错误:
couldn't find file 'underscore'
(/app/assets/javascripts/application.js:16)
Run Code Online (Sandbox Code Playgroud)
突出显示以下行:
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)
我尝试按照Gmaps中发布的建议 未在rails 4 + gmaps4rails 2.0.3中定义
并且突出显示相同行的错误时出现相同的错误.当我尝试删除该行
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)
从application.html.erb,我收到错误"未找到Gmaps"
任何帮助表示感谢,谢谢.Github链接:https://github.com/chiefkikio/circus/