2012-05-12 1 views
0

미국의 상태를 기반으로 마커가있는지도가 있습니다. 각 주에는 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

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

없이 aps4rails_infowindow.html.haml

그것이 작동하지 않는 말을한다. 누군가 나를 도울 수 있습니까?

답변

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 살고

  • ,536,
+0

대단히 감사합니다 :) 내 앱 중 하나에 보석을 사용하고 있기 때문에 앞으로 다가올 날에 당신을 괴롭힐 것입니다. –

+0

왜 객체와 함께 작동합니까? –

+0

부분 변수에서 로컬 변수에 지정한 이름이기 때문입니다. – apneadiving