首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails模板文件-遍历表中的列

Rails模板文件-遍历表中的列
EN

Stack Overflow用户
提问于 2018-10-25 08:04:08
回答 2查看 58关注 0票数 0

我有一个包含字段的表,名为day1、day2等,直到day23为止。

我将数据放在一个名为“预测”的变量中,并试图在模板文件中打印值,如下所示:

代码语言:javascript
复制
<td><% forecast.day1 %></td>

我能在第一天到第二十三天循环做上面的事吗?请帮帮我!

另外,我想检查一天的值是否为空,只有当它不是空的时候才会显示它。我能用.present吗?请帮帮我!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-25 08:06:12

下列措施将起作用:

代码语言:javascript
复制
<% (1..23).each do |n| %>
  <td><%= forecast.public_send("day#{n}") %></td>
<% end %>

因此,您遍历1到23的范围,使用day#{n}将方法forecast发送给每个数字的public_send

关于问题的第二部分,只有在元素存在时才显示td,可以使用:

代码语言:javascript
复制
<% (1..23).each do |n| %>
  <% if (forecast_for_day = forecast.public_send("day#{n}")).present? %>
    <td><%= forecast_for_day %></td>
  <% end %>
<% end %>

这将在检查期间将结果分配给局部变量,并用于显示结果(如果存在的话)--保存必须调用该方法两次。

希望这能帮上忙-如果你有什么问题就告诉我。

票数 1
EN

Stack Overflow用户

发布于 2018-10-25 08:12:48

尝尝这个

代码语言:javascript
复制
<%= (1..23).each do |day_num| %>
  <% if forecast.send("day#{day_num}").present? %>
    <td><% forecast.send("day#{day_num}") %></td>
  <% end %>
<% end %>

如果在任何变量中都有天数,那么就迭代它,而不是(1..23)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52984279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档