我正在尝试让 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 defined
Javascript 错误。我读过这个问题,这表明您可能无法在 Backbone 视图中执行此操作?
我只是想知道是否有人可以指出我正确的方向!能够在我的页面上显示谷歌地图真是太好了。
谢谢。