【发布时间】:2011-06-20 10:26:34
【问题描述】:
我有以下显示事件的视图代码,以及通知用户今天、昨天或过去一周是否发生了以下事件的标题。
这一切都很好,但我更愿意将它重构到视图之外,我不能把它放在帮助器中,因为它需要在循环迭代之间维护变量状态。知道如何整理吗?谢谢
<% displayed_week_already = false %>
<% displayed_yesterday_already = false %>
<% displayed_today_already = false %>
<% @events.each do |event| %>
<%= event.title &>
<% if (Time.now - 1.week) > event.created_at && !displayed_week_already %>
<% displayed_week_already = true %>
Events in past week
<% elsif (Time.now - 1.day) > event.created_at && (Time.now - 2.day) < event.created_at && !displayed_yesterday_already %>
<% displayed_yesterday_already = true %>
Events yesterday
<% elsif (Time.now - 1.day) < event.created_at && !displayed_today_already %>
<% displayed_today_already = true %>
Events in past day
<% end %>
<% end %>
预期的输出是:
过去一天的事件
约翰创作了一篇新文章
丹评论文章 1
苏删除第 2 条
昨天的活动
苏创建了一篇新文章
过去一周的活动
卡罗尔升职
Dan 发表了一篇新文章
【问题讨论】:
标签: ruby-on-rails view refactoring helpers