gmaps4rails をバックボーン ビューとテンプレートで動作させようとしています。
簡単な紹介として、私はイベントのページを作成しようとしています。個々のイベントを表示すると、Google マップで場所が表示されます。しかし、それをすべて結び付ける方法がよくわかりません。
私が取った手順は次のとおりです。
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 エラーが発生します。バックボーンビューではおそらくこれを行うことができないことを示唆するこの質問を読みましたか?
誰かが私を正しい方向に向けることができるかどうか疑問に思っていました! 自分のページにGoogleマップを表示できるのは本当にいいですね。
ありがとう。