1

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 definedJavascript エラーが発生します。バックボーンビューではおそらくこれを行うことができないことを示唆するこの質問を読みましたか?

誰かが私を正しい方向に向けることができるかどうか疑問に思っていました! 自分のページにGoogleマップを表示できるのは本当にいいですね。

ありがとう。

4

0 に答える 0