2012-01-08 10 views
1

私は多くの同様の質問を見て、彼らの提案を試みましたが、私はまだ完全に空のマップ(コントロールなし)を取得しています。資産が有効になっているgmaps4rails empty map ... Javascriptの問題?

<% = yield :scripts %> 

:私はRailsの3.1.2と私のフッターに

私はこれを持っているのRuby 1.9.2-P290を使用して

...これは単純なものであるかなり確信しています。私application.jsはjqueryの行の前に次の行があります。

//= require gmaps4rails/googlemaps.js 

(私も試してみましたが、// =必要./gmaps4rails/googlemaps.js)

は、資産/ JavaScriptの/ gmaps4railsディレクトリが存在し、スクリプトが含まれています。

マイモデルコード:

# 01/06/2012 - For Gmaps4Rails 
    acts_as_gmappable 
... 
    def gmaps4rails_address 
    # 01/06/2012 - For Gmaps4Rails 
    "#{self.city}, #{self.country}" 
    end 

マイビュー:

<%= gmaps4rails(@json) %> 

マイコントローラ:

@json = Party.all.to_gmaps4rails 
@parties = Party.all 

私はJSONオブジェクトは、データを持っていると確信しています(ので、私はそれを追加した場合ビューに)ページがレンダリングされたときに表示されます: [{"lat":15.87、 "lng":100.993}、{"lat":37.0902、 "lng": - 95.71 29}] また、私のローカルのMySQLデータベースを見ると、それらの行に緯度と経度が設定されていて、gmaps = 1

しかし、私が得るのは大きくて、完全に空のマップエリアです(コントロールなし)。

私の勘違いは、/ gmaps4rails/... javascriptが取り込まれていないことです。私がソースを見ると、application.jsが見えますが、gmapsには言及していません。

スクリプトの下でfirebugを見ると...私が見るのは\ localhost \ assetsスクリプトだけです。application.jsです。 googlemaps.jsも表示するべきではありませんか?

Gmaps javascriptのが最後にソースの表示には表示されず、

()... Gmaps.map =新しいGmaps4RailsGoogle(...)私は、これが2程度のRails 3のアプリにアプリをレールに変換しました数か月前。おそらく、新しいレール3のアプリケーション世代で通常自動的にセットアップされるものが私のために有効になっていないのでしょうか? Coffeescript?

私はここで間違っていますか?助言がありますか?

ありがとうございます!

+0

ヘッダーに<%= yield:head%>がありますか? – apneadiving

+0

rakeタスクを使用してアプリケーション内のjsファイルをコピーしようとしましたか? – apneadiving

+0

放課後:収量について:頭:私はそれを両方の方法で試したが、影響はない。ドキュメントにはRails 3.0.x ** **しか書かれていないので、3.1では不要であると仮定しています。私はちょうどそれを戻して、それは影響を与えなかった。 rakeタスクに関しては、 'rails generate gmaps4rails:install'コマンドを意味しますか?はい、私はそれを行い、ファイル\ gmaps4rails \ gmaps4rails.base.coffeeと\ gmaps4rails \ gmaps4rails.googlemasp.coffeeは両方ともそのサブディレクトリに存在します。以前のレールバージョンからアップグレードしてから、私がcoffeescriptを処理するために必要なものがないと思っています... –

答えて

0

SOLVED! 問題は、以前のレールバージョンからの移行のために私の資産パイプラインがすべて乱れていたことでした。、 まず、私のgemfileにこれらの行を追加します:

# Gems used only for assets and not required 
# in production environments by default. 
# 01/14/2012 - DC needed to add this manually because this was UPGRADED! 
group :assets do 
    gem 'sass-rails', '~> 3.1.5.rc.2' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

# 01/14/2012 - Needed this on linux to clear this bug: line 8: missing name after . operator 
gem 'therubyracer', '>= 0.8.2' 

は、私はまた私の\パブリック\資産\アプリケーションを削除した後バンドル更新具体的には、私はこれを解決するには、次のことをしなければなりませんでした.js。私はそれが私の以前のレール版から残されていたので、これは自動的に再コンパイルされていないと思う。

その後、BooYah!それは働いている!

+0

あなたの解決策としてあなたの質問に印を付けてください。ありがとう:) – apneadiving

+0

確かに、申し訳ありません!私はすでに持っていたと思った。ご協力いただきありがとうございます! –

2

あなたのアプリでCoffeescriptが功績的に動作しているかどうかを簡単に確認するには、file.coffeeapp/assets/javascripts/に新しく作成してから、//= require file行を追加します。レンダリングされたページがその新しいファイルを参照するか、(レンダリングされたapplication.jsにレンダリングされたfile.coffeeが含まれている場合、アセットパイプラインがこのように設定されていると仮定すると、すべてが正しく動作しているように見えます。

これが起こっていない場合は、新しいrails 3.1.2アプリを作成し、アプリに対して再帰的にdiffを実行してみてください。 具体的には、config/application.rbconfig/environments/*ファイルを参照してください。それから、明らかに、あなたのアプリに欠けている可能性のあるものに気をつけてください。 Railsが新しいアプリケーションジェネレータで生成するアセットパイプラインに関連するいくつかのコンフィグレーションステートメントがあります。これは、アップグレード中に見逃した可能性があります。私はアプリを3.1にアップグレードする前にヒッチを上げていましたが、これは常に啓発されてきました。

最終的な提案は、application.jsrequireディレクティブに.js拡張子を指定しているようです。これは確かに必要ではなく、それが中に引っ張られていない理由かもしれない。


1. MeldあなたがLinuxやOSXを使用している場合は、このための素晴らしいグラフィカルなツールです。

+0

私はちょうどあなたがそれを解決したのを見ました:私はそれをタイプしていました –