gpt4 book ai didi

ruby-on-rails - Slim 中的 Ruby Each 循环

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:27 24 4
gpt4 key购买 nike

我希望能够通过 javascript 循环遍历实例变量,但我不太确定如何让它工作。

javascript:
-@spots.each do |spot|
map.addMarker({
lat: "#{spot.latitude}",
lng: "#{spot.longitude}",
title: "spot",
});
});

我尝试过的:使用 <% @spots.each 做 |spot| %> 并且没有 #{}

的引号

最佳答案

似乎一旦进入 javascript: slim block ,您就不能再执行 ruby​​ 循环了。

我能够让这个大部分工作

- @spots.each do |spot|
javascript:
map.addMarker({
lat: #{spot.latitude},
lng: #{spot.longitude},
title: "spot"
});

但这会为每个 addMarker 调用创建单独的脚本标记,这看起来很愚蠢。

您也可以尝试将数据作为 JSON 放在页面上,然后在 Javascript 中执行循环。像这样:

javascript:
var spots = #{raw @spots.to_json};
var ii = 0;
var nspots = spots.length;
for(;ii<nspots;++ii) {
theMap.addMarker(spots[ii]);
}

您希望确保 theMap 在这些东西运行时可用,但我认为这可能会成功。您还应该检查每个@spot 的 JSON 格式。根据您的 JSON 设置方式,每个点可能看起来像

{'spot': { 'latitude': ###, 'longitude': ### } } 

这意味着你必须取消引用循环中的对象。

关于ruby-on-rails - Slim 中的 Ruby Each 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com