1

我正在尝试让 gmaps4rails 与我的主干视图和模板一起工作。

作为一个快速介绍,我正在尝试为事件创建一个页面,当查看每个单独的事件时,它都有一个谷歌地图,其中显示了位置。但是,我不太确定如何将它们联系在一起。

我采取的步骤如下: Gemfile:

gem 'gmaps4rails'

然后我运行rails generate gmaps4rails:install并将以下内容添加到application.js

// GOOGLE MAPS
//= require_directory ./gmaps4rails

然后我修改了我的模型和迁移:

模型:

class Event < ActiveRecord::Base
   acts_as_gmappable
   ...
   def gmaps4rails_address
      self.location
   end
end

移民:

class CreateEventGmaps < ActiveRecord::Migration
  def change
    add_column :events, :latitude,  :float
    add_column :events, :longitude, :float
    add_column :events, :gmaps, :boolean 
  end
end

然后我运行rake db:migrate并使用rake db:seed. 每个事件都有一个设置为任意位置的位置,并且在播种时我没有收到任何错误。

对于下一点,我不太确定如何将它们与我的控制器和主干视图联系在一起,到目前为止,我已经添加了以下代码:事件控制器:

class EventsController < ApplicationController
  ...
  # GET /events/1
  # GET /events/1.json
  def show
    @event = Event.find(params[:id])
    @json = @event.to_gmaps4rails
    respond_with @event
  end

骨干视图:

class CPP.Views.Events.Edit extends Backbone.View
  template: JST['backbone/templates/events/view']

  initialize: ->
    @render()

  render: ->
    $(@el).html(@template(event: @model))
    @

模板:

  <div class="span6" >
    <div class="row">
      <div class="span6">
        <h1 class="section-header"><i class="icon-map-marker"></i> Location</h1>
        <%= gmaps4rails(@json) %>
      </div>
      <div class="span6">
        <div class="event-location">
          <dl>
            <dt>Address</dt>
            <dd><%= @event.get 'location' %></dd>
          </dl>
        </div>
      </div>
    </div>

但是我收到了一个Uncaught ReferenceError: gmaps4rails is not definedJavascript 错误。我读过这个问题,这表明您可能无法在 Backbone 视图中执行此操作?

我只是想知道是否有人可以指出我正确的方向!能够在我的页面上显示谷歌地图真是太好了。

谢谢。

4

0 回答 0