2012-05-12 14 views
0

USの状態に基づいてマーカーを取得したマップがあります。各州にはn個の都市があります。Gmaps4Railsで部分的にレンダリングできません

私は状態モデル、コントローラと都市モデル、コントローラを持っています。

州のマーカーをクリックすると、情報ウィンドウに都市リストが表示されます。

これらの情報はすべてホームページに掲載されています。

これは私がこれまでにやっていることである: -

home_controller.rb

def index 
    @states = State.all.to_gmaps4rails do |state,marker| 
     marker.infowindow render_to_string(:partial => "/states/gmaps4rails_infowindow", :locals => {:object => state}) 
     marker.json({:id => state.id}) 
    end 
end 

ホーム/ index.html.haml

=gmaps({"map_options" =>{ "auto_zoom" => false, "zoom" => 3}, "markers" => { "data" => @states } }) 

state_controller.rb

def gmaps4rails_infowindow 
    @state = Gmaps.map.markers 
end 

州/ _gmそれが動作していないと言ってaps4rails_infowindow.html.haml

[email protected] do |city| 
    =city.name 

言うまでもないです。誰かが私を助けてくれますか?

答えて

1

あなたのhome_controller.rbは問題ありません。ここでは、部分変数をローカル変数objectと使いたいとします。自身部分的に

、次のように記述:インスタンス変数がそこに定義されていない

[email protected] do |city| 
    =city.name 

、あなただけの上でローカル変数を定義しました。

で置き換えますが、それは動作するはずですから

=object.cities.each do |city| 
    =city.name 


お知らせ:

def gmaps4rails_infowindow 
    @state = Gmaps.map.markers 
end 

は次のとおりです。

  • 役に立た:Gmaps.map.markersのみ

  • jsの変数として住んでいる:あなたは、コントローラに

  • 間違った情報ウィンドウを定義します

+0

私はあなたの宝石を私のアプリケーションの1つに使用しているので、私は次の日にあなたを盗んでしまいます –

+0

なぜオブジェクトで動作しますか? –

+0

です。これは、あなたが部分的にローカル変数に与えた名前だからです。 – apneadiving

関連する問題