我有一个包含多组日期值的员工数据库。目前我以这种格式输出这些数据:
<% @trainings.each do |training| %>
<tr>
<td><%= training.birthday %></td>
<td><%= training.comp_cert %></td>
<td><%= training.cdl %></td>
<td><%= training.forklift %></td>
</tr>
<% end %>
我想在每个循环中遍历这些日期并检查日期
Time.now + 30.days
但我遇到了一些问题。我试过这个:
<% @trainings.each do |training| %>
<% training.each do |t| %>
<% if t < Time.now + 30.days %>
<tr class="warning">
<% else %>
<tr class="success">
<% end %>
<% end %>
<!-- Table Data Here -->
<% end %>
但它告诉我在训练中没有调用 each 的方法。有没有比手动检查每个单独的键更有效的方法?
最佳答案
您不能迭代单个对象。您只能在集合上使用迭代器模式。对于初学者,我建议采用以下方法:)
<% @trainings.each do |training| %>
<% %w{birthday comp_cert cdl forklift}.each do |field_name| %>
<% if training[field_name] < Time.now + 30.days %>
<tr class="warning">
<% else %>
<tr class="success">
<% end %>
<% end %>
<!-- Table Data Here -->
<% end %>
关于ruby-on-rails - 遍历子数组以检查日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001931/