1

私は mapstraction-rails プラグインを使用していますが、Rails 2.3 バージョンでは問題なく動作しました。Rails のバージョンを 3.2 にアップグレードすると、このエラーが発生し始め、マップが読み込まれません

TypeError: this.location.toProprietary is not a function        

options.position = this.location.toProprietary(this.api);

firebug では、ファイルにエラーが表示されます: mxn.googlev3.core.js at line 484.

JQuery のバージョンは Rails 2.3、つまり 1.4 で使用されているものと同じです

私は使っている

@map.initialize_map(:onload=>false) #=> in rails 2.3

<%= @map.initialize_map(:onload=>false).first.html_safe %> #=> in rails 3.2 as this method returns the array with one element me in it.

script タグ内のメソッドを使用して、マップを表示する関数を呼び出します。

this.location.toProprietary(this.api); のthis要素を調べました。firebug では "this" 要素が Rails 3.2 では異なるようです。スクリーンショットをお願いします。

レール2.3で

ここに画像の説明を入力

レール3.2で

ここに画像の説明を入力

4

1 に答える 1

1

プラグイン lib/mapstraction/latlon.rb にファイルがあります。

メソッドがあります:

def to_html
  html =[]
  html << "new mxn.LatLonPoint(#{@latitude},#{@longitude})"
  return html
end

戻り値を変更したところ、JavaScript の「this」オブジェクトは Rails 2.3 バージョンと同じになりました。

変更された方法:

def to_html
  html =[]
  html << "new mxn.LatLonPoint(#{@latitude},#{@longitude})"
  return html.join(" ").html_safe
end
于 2013-10-23T06:37:13.557 に答える