首页 文章

gmaps4rails空 Map ... Javascript问题?

提问于
浏览
1

我已经查看了许多类似的问题,并尝试了他们的建议,但我仍然得到一个完全空的 Map (没有控件) . 我很确定这很简单......

使用Rails 3.1.2和Ruby 1.9.2-p290

我在页脚中有这个:

<% = yield :scripts %>

资产已启用 . 我的application.js在jquery行之前有这一行:

//= require gmaps4rails/googlemaps.js

(我也试过// = require ./gmaps4rails/googlemaps.js)

assets / javascripts / gmaps4rails目录存在,它包含脚本 .

我的型号代码:

# 01/06/2012 - For Gmaps4Rails
    acts_as_gmappable
...
    def gmaps4rails_address
    # 01/06/2012 - For Gmaps4Rails
    "#{self.city}, #{self.country}" 
    end

我的看法:

<%= gmaps4rails(@json) %>

我的控制器:

@json = Party.all.to_gmaps4rails
@parties = Party.all

我确信JSON对象有数据,因为(如果我将它添加到视图中)我可以在页面呈现时看到它:[{“lat”:15.87,“lng”:100.993},{“lat”:37.0902, “lng”: - 95.7129}]另外,如果我查看我的本地MySQL数据库,那些行的纬度和经度设置,并且gmaps = 1

但是,我得到的只是一个很大的,完全空的 Map 区域(没有控件) .

我的预感是/ gmaps4rails / ... javascript没有被拉入 . 如果我查看源代码,我可以看到application.js,但它没有提到gmaps .

如果我在脚本下查看firebug ...我看到的唯一\ localhost \ assets脚本是application.js . 我不应该看到googlemaps.js吗?

Gmaps javascript does 出现在最后的视图源中(... Gmaps.map = new Gmaps4RailsGoogle(); ...)

大约两个月前,我将这个rails应用程序转换为Rails 3应用程序 . 也许通常在新的rails 3应用程序生成中自动设置的东西不能为我启用? CoffeeScript的?

我可能在这里做错了什么?有什么建议?

谢谢!

2 回答

  • 2

    SOLVED! 问题是由于从早期的rails版本迁移,我的资产管道全部搞砸了 . 具体来说,我必须做以下事情来解决这个问题:首先,在我的gemfile中添加以下行:

    # Gems used only for assets and not required
    # in production environments by default.
    # 01/14/2012 - DC needed to add this manually because this was UPGRADED!
    group :assets do
      gem 'sass-rails',   '~> 3.1.5.rc.2'
      gem 'coffee-rails', '~> 3.1.1'
      gem 'uglifier', '>= 1.0.3'
    end
    
    # 01/14/2012 - Needed this on linux to clear this bug: line 8: missing name after . operator
    gem 'therubyracer', '>= 0.8.2'
    

    那么 bundle update

    我还删除了我的\ public \ assets \ application.js . 我认为这不会自动重新编译,因为它是我之前的rails版本遗留下来的 .

    在那之后,BooYah!这是工作!

  • 0

    快速测试Coffeescript是否在您的应用中正确运行是在 app/assets/javascripts/ 中创建一个新的 file.coffee 然后添加 //= require file 行 . 如果您渲染的页面然后引用该新文件,或者(假设您的资产管道以这种方式设置),如果渲染的 application.js 包含渲染的 file.coffee ,则一切看起来都能正常工作 .

    如果没有发生这种情况,请尝试创建一个新的rails 3.1.2应用程序并对其应用程序执行递归 diff . 具体来说,查看 config/application.rbconfig/environments/* 文件 . 显然,请留意您应用中可能缺少的任何内容 . 有一些与Rails使用新的应用程序生成器生成的资产管道相关的配置语句,您可能在升级期间错过了这些语句 . 在将应用程序升级到3.1之前,我遇到了麻烦,这一直都很有启发性 .

    我最后的建议是你似乎在 application.js require 指令中指定 .js 扩展名 . 这当然不是必要的,可能是它没有被吸引的原因 .


    如果您使用的是Linux或OSX,Meld是一个很棒的图形工具 .

相关问题