2
在Rails 3應用程序中,我運行了一個有點複雜的group_by,並且很好奇,如果我可以將它隱藏在其他地方,就像可以隱藏範圍內的ActiveRecord條件一樣。我意識到GROUP_BY是可枚舉的操作,因此示波器在這裏不適用,但我的問題是,如果有一個比較的方式來創建一個簡寫本的方式:我怎樣才能在Ruby中隱藏複雜的group_by子句?
@launches_and_finales = Show.launches_and_finales.sort_by { |s|
(s.run_starts_on &&
((Date.today - 3.days)..(Date.today + 3.days)) === s.run_starts_on) ?
s.run_starts_on : s.run_ends_on }
附註:我知道3.days.ago..3.days.from_now
會更簡潔,但有一個bug in Ruby 1.9.2,當我使用它時會觸發無限循環。
我從來沒有想過在模型層做更復雜的邏輯。我必須在這裏只考慮範圍和限制,但我當然可以添加一個全新的方法。我不認爲2會做到這一點,因爲它是我所追求的更復雜的羣體,而不僅僅是過濾器。 – 2010-10-28 21:07:25