脚本块以$('#map#{shop.id}').....
中的content_for :in_script
开头不起作用。
def edit_country_fields_template(city, shop)
content_tag(:div, :class => "item") do
"<div id='map#{shop.id}' class='map'></div>".html_safe +
if shop.geocoded?
content_for :in_script do
$('#map#{shop.id}').gMap({ markers: [{ latitude: #{spot.lat},
longitude: #{shop.lng},
html: '_latlng' },
{ address: '#{shop.address_geo}',
html: '#{shop.name}<br/><a href='http://maps.google.com/maps?q=#{shop.address_geo}' target='_blank'>See Full Map</a>' },
],
zoom: 16 });
end
end
end
end
我在edit.html.erb
<%= edit_country_fields_template %>
视图中调用了此助手。但是我有问题,下面的脚本代码在视图文件的脚本中添加内联:
$('#map#{shop.id}').gMap({ markers: [{ latitude: #{spot.lat},
longitude: #{shop.lng},
html: '_latlng' },
{ address: '#{shop.address_geo}',
html: '#{shop.name}<br/><a href='http://maps.google.com/maps?q=#{shop.address_geo}' target='_blank'>See Full Map</a>' },
],
zoom: 16 });
最终结果是if shop.geocoded
是true
,上面的脚本代码将在我的视图中显示为内联脚本:
<script type="text/javascript">
$(document).ready(function(){
$('#map1').gMap({ markers: [{ latitude: -1.030503,
longitude: 1.340594,
html: '_latlng' },
{ address: '200 Good Street, California, United States of America',
html: 'California Restaurant<br/><a href='http://maps.google.com/maps?q=200 Good Street, California, United States of America' target='_blank'>See Full Map</a>' },
],
zoom: 16 });
});
感谢。
答案 0 :(得分:0)
content_for
不输出任何内容,但将HTML存储在缓冲区中以供在其他地方使用(例如页面的页眉或页脚)。
在您的视图中或部分:
content_for :my_script do
"abc"
end
然后在你的布局中:
yield :my_script
如果没有yield
,您的content_for
将不会显示。