我有一个包含字段的表,名为day1、day2等,直到day23为止。
我将数据放在一个名为“预测”的变量中,并试图在模板文件中打印值,如下所示:
<td><% forecast.day1 %></td>我能在第一天到第二十三天循环做上面的事吗?请帮帮我!
另外,我想检查一天的值是否为空,只有当它不是空的时候才会显示它。我能用.present吗?请帮帮我!
发布于 2018-10-25 08:06:12
下列措施将起作用:
<% (1..23).each do |n| %>
<td><%= forecast.public_send("day#{n}") %></td>
<% end %>因此,您遍历1到23的范围,使用day#{n}将方法forecast发送给每个数字的public_send。
关于问题的第二部分,只有在元素存在时才显示td,可以使用:
<% (1..23).each do |n| %>
<% if (forecast_for_day = forecast.public_send("day#{n}")).present? %>
<td><%= forecast_for_day %></td>
<% end %>
<% end %>这将在检查期间将结果分配给局部变量,并用于显示结果(如果存在的话)--保存必须调用该方法两次。
希望这能帮上忙-如果你有什么问题就告诉我。
发布于 2018-10-25 08:12:48
尝尝这个
<%= (1..23).each do |day_num| %>
<% if forecast.send("day#{day_num}").present? %>
<td><% forecast.send("day#{day_num}") %></td>
<% end %>
<% end %>如果在任何变量中都有天数,那么就迭代它,而不是(1..23)
https://stackoverflow.com/questions/52984279
复制相似问题