2013-07-27 93 views
0

所以我有一個集合稱爲@events,我將其定義爲Rails的收集過去30天

@organization.owned_events.current.reverse 

不過,我實際上想要做的是有沒有真正的電流,但在過去30天內任何當前或過期的事物。我試過

@organization.owned_events.current-30.days.reverse 

但是這只是提供了一個空的集合。我認爲這是因爲我真正想要的不是當前 - 30.天,但實際上是當前和目前 - 30.天

不知道如何寫,雖然。我可以以某種方式定義另一個術語,而不是像net_thirty這樣的當前字詞,並且在過去的30天內製作相同的電流嗎?

回答

1

在你的事件模型,你可以這樣做:

scope :from, ->(duration){ where('your_datetime_field_here > ?', Time.zone.now - duration) } 

既然你想通過日期或日期時間字段進行過濾,前一個選項是一個日期時間字段,如果你想通過日期字段篩選:

scope :from, ->(duration){ where('your_date_field_here > ?', Time.zone.today - duration) } 

->(){}是要傳遞到範圍塊。

你可以使用這些示波器是這樣的:

any_events.from(30.days) 

你的情況:

@organization.owned_events.from(30.days) 

你也可以想後,今天不來過濾事件:

scope :from, ->(duration){ where('your_date_field_here BETWEEN ? AND ? ', Time.zone.today - duration, Time.zone.today) } 
相關問題