Я использую gMap (http://gmap.nurtext.de/) для отображения картографических данных в приложении Rails. Это работает так, что вы передаете им маркеры JSON, содержащие переменные, и он отображает их на карте Google. Когда вы нажимаетемаркер показывает HTML, содержащийся в переменной 'html'.
Работает нормально, но в данный момент я передаю html в JSON из модели. Это меня раздражает, потому что html должен быть вЯ хотел бы как-то передать частичное в JSON, которое затем отображается в html.
В настоящий момент в модели создается json с этим кодом
def 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} %>"
Частичное работает само по себе - я поставил его прямо в целях проверки. Всплывающий пузырь также работаеткогда у вас есть прямой HTML в JSON.
Однако, когда частичное передается внутри JSON, результирующий код будет
<div class="gmap_marker">
<%= render :partial => "listings/bubble", :locals => {:listing => @listings.first} %>
</div>
Он просто заканчивается как строка в HTML, он никогдарендеринг.
Так что я думаю, есть два вариантаs Я ищу:
- Часть отображается до того, как она будет передана как JSON (например, в конце модели) или
- Эта часть отображается при отображении представления.
Не уверен, что это вопрос javascript или вопрос Rails, но любая помощь будет признательна!
Приветствия