的願望是做,而無需一個巨大的,明確的方法,並利用函數式編程方法。 Matt Youell給我發送了一個簡單的方法來完成使用注入在一分鐘內到達的分組項目。
def group?(current, last)
current.created_at - last.created_at < 1.minute
end
recent_statuses.inject([]) { |results, status|
next results << [status] if results.empty? # Can't compare first item.
results << group?(status, results.last.last) ? stat : [stat]
}
這將導致一組狀態消息和狀態消息數組,例如,
[<#Status>, <#Status>, [<#Status>, <#Status>], <#Status>, [#<Status>, <#Status>], <#Status>]
而且將使你的東西,如解析這個列表:
results.each do |result|
if result.class == Status
# format a single entry
else result.class == Array
# Enter the grouped formatting
end
end
這當然,可以在許多方面,包括將多個邏輯分組到組擴展(?)。從概念上講,這正是我所期待的。
的確如此。我打算在控制器中做,但保持它不在那裏會是最好的。不過,這更多的是解析,收集和優雅組織信息的方法問題。我正在尋找最佳做法,但可能沒有。我想我現在只會嘲笑它。 – JohnMetta