4

ActiveAdmin/Railsアプリでgmaps4railsを使用してみてください。そのために、Gemfileに次を追加しました。

gem 'gmaps4rails'

そして「バンドル」を実行しました。app / admin/device.rbファイルの「show」メソッドを次のように更新しました。

show do 
  attributes_table do
    row :name
  end

  # Get device location
  @markers = Location.all.to_gmaps4rails
  div do
    render "map"
  end
end

app / views / admin / devices / _map.html.erbには、次のコードがあります。

<%= stylesheet_link_tag 'gmaps4rails' %>
<%= gmaps4rails(@markers) %>
<%= yield :scripts %>

app / Assets / javascripts / application.js:

//= require gmaps4rails/gmaps4rails.googlemaps
//= require gmaps4rails/gmaps4rails.base
//= require jquery
//= require jquery_ujs
//= require_tree .

そして私のapp/models / location.rbで:

class Location < ActiveRecord::Base
  acts_as_gmappable

  attr_accessible :latitude, :longitude

  def gmaps4rails_address
    "#{self.latitude}, #{self.longitude}" 
  end

  def location
    [:latitude, :longitude]
  end
end

デバイスの表示ページに移動すると、マップが表示されません(すべて空白)。見逃した設定はありますか?

アップデート

Chrome開発ツールで確認したところ、次のエラーに気づきました。

Uncaught SyntaxError: Unexpected token ;

次の行を参照します。

Gmaps.map.markers = ;
4

2 に答える 2

2

次のように修正します。

div do
  markers = Location.all.to_gmaps4rails
  render "map", { :markers => markers }
end

と :

<%= stylesheet_link_tag 'gmaps4rails' %>
<%= gmaps({
        "map_options" => { "zoom" => 2, "auto_adjust" => false},
        "markers"     => { "data" => markers }
        })
%>
<%= yield :scripts %>
于 2012-12-16T13:12:47.443 に答える
0

/config/initializers/active_admin.rbにあるJavascriptファイルをロードする必要があります。セクションを検索します。

# To load a javascript file:
#   config.register_javascript 'my_javascript.js'

また、CSSファイル(表示されていない場合)を同じファイルに追加する必要があると思います。

ActiveAdminは、 active_admin.jsという名前の独自のJavascriptファイルを管理していることに注意してください。このJSにJavascriptファイルをロードしてみてください。しばらく前に私は同様の問題を抱えていましたが、イニシャライザーにファイルを追加することでしか解決できませんでした。

于 2012-12-08T19:58:51.723 に答える