Rails 模板文件 - 遍历 table 中的列
Rails Template File - looping through columns in a table
我有一个 table 字段名为 day1、day2 等等,直到 day23。
我在一个名为 forecast 的变量中有数据,我正尝试打印模板文件中的值,如下所示:
<td><% forecast.day1 %></td>
我可以在第 1 天到第 23 天循环执行上述操作吗?请帮忙!
另外,我想检查一天的值是否为空,只有当它不为空时才显示它。我可以为此使用 .present 吗?请帮忙!
以下将起作用:
<% (1..23).each do |n| %>
<td><%= forecast.public_send("day#{n}") %></td>
<% end %>
因此,您遍历 1 到 23 的范围,使用 public_send
.
将方法 day#{n}
发送到每个数字的 forecast
关于你问题的第二部分,如果元素存在则只显示 td
,你可以使用:
<% (1..23).each do |n| %>
<% if (forecast_for_day = forecast.public_send("day#{n}")).present? %>
<td><%= forecast_for_day %></td>
<% end %>
<% end %>
这会在检查期间将结果分配给局部变量,并用于显示结果(如果存在)- 无需调用该方法两次。
希望对您有所帮助 - 如果您有任何问题,请告诉我。
试试这个
<%= (1..23).each do |day_num| %>
<% if forecast.send("day#{day_num}").present? %>
<td><% forecast.send("day#{day_num}") %></td>
<% end %>
<% end %>
如果您在任何变量中有天数,则遍历它而不是 (1..23)
我有一个 table 字段名为 day1、day2 等等,直到 day23。
我在一个名为 forecast 的变量中有数据,我正尝试打印模板文件中的值,如下所示:
<td><% forecast.day1 %></td>
我可以在第 1 天到第 23 天循环执行上述操作吗?请帮忙!
另外,我想检查一天的值是否为空,只有当它不为空时才显示它。我可以为此使用 .present 吗?请帮忙!
以下将起作用:
<% (1..23).each do |n| %>
<td><%= forecast.public_send("day#{n}") %></td>
<% end %>
因此,您遍历 1 到 23 的范围,使用 public_send
.
day#{n}
发送到每个数字的 forecast
关于你问题的第二部分,如果元素存在则只显示 td
,你可以使用:
<% (1..23).each do |n| %>
<% if (forecast_for_day = forecast.public_send("day#{n}")).present? %>
<td><%= forecast_for_day %></td>
<% end %>
<% end %>
这会在检查期间将结果分配给局部变量,并用于显示结果(如果存在)- 无需调用该方法两次。
希望对您有所帮助 - 如果您有任何问题,请告诉我。
试试这个
<%= (1..23).each do |day_num| %>
<% if forecast.send("day#{day_num}").present? %>
<td><% forecast.send("day#{day_num}") %></td>
<% end %>
<% end %>
如果您在任何变量中有天数,则遍历它而不是 (1..23)