我正在使用gMap(http://gmap.nurtext.de/)在Rails应用中显示地图数据。它的工作方式是传递包含变量的JSON标记,并在Google Map上呈现它们。当您单击标记时,它会显示变量'html'中包含的HTML。
它运行正常,但此刻我正在从模型中传递JSON中的html。这让我很烦,因为html应该在视图中。我想以某种方式传递JSON中的部分,然后在html中呈现。
目前,在模型中使用此代码
创建了jsondef as_json(options={})
hash = Hash.new
hash[:longitude] = longitude.to_i
hash[:latitude] = latitude.to_i
hash[:html] = "<p>#{title}</p>"
hash[:popup] = true
hash[:url] = "/listings/"+id.to_s
return hash
end
:html键是我想放置的东西,如
hash[:html] = "<%= render :partial => "listings/bubble", :locals => {:listing => @listings.first} %>"
部分工作本身 - 我已将其直接用于检查。当您在JSON中使用直接html时,弹出气泡也会起作用。
但是,当部分在JSON内传递时,生成的代码为
<div class="gmap_marker">
<%= render :partial => "listings/bubble", :locals => {:listing => @listings.first} %>
</div>
它最终只是HTML中的一个字符串,它永远不会呈现。
所以我想我正在寻找两种选择:
不确定这是一个javascript问题还是一个Rails问题,但任何帮助都将不胜感激!
干杯
答案 0 :(得分:0)
您已经有了正确的想法,但必须使用render_to_string函数:
hash[:html] = render_to_string(:partial => "listings/bubble",
:locals => {:listing => @listings.first})