2014-04-01 48 views
1

我在ActiveAdmin中有一個名爲events的表。是否可以在字段中設置的當前日期到期日期之後創建操作?

有一個叫做eventdate的字段,在這裏有一個事件的日期。

我期待能夠有一個動作,噹噹前日期超過事件日期時,表格會在名爲「事件結束」的選擇框中自動選擇。這基本上說這個事件已經過期。

這是可能的還是有沒有一個創業板已經爲ActiveAdmin做到這一點?

對不起,這是一個基本的問題,但這是我得到的。

乾杯

+0

能不能請你解釋它稍微好一點。 「做一個動作」意味着什麼? - 控制器行爲? 'selectbox' - 下拉菜單? '桌子得到一個自動選擇' - 什麼桌子?數據庫表,表中的視圖,其他? – BroiSatse

+0

嗨BroiSatse,對不起,是在activeadmin本身的表視圖。真的很糟糕的解釋。當我說動作時,我的意思是讓事件使選擇框'event_type'具有「結束」自動選擇或過期的方式。 –

+0

此選擇框中是否有其他選項?爲什麼你想給用戶一個改變它的機會?這裏的標籤不會更好嗎? – BroiSatse

回答

1

我會定義定義你的事件模型兩件事情:expired範圍,expired?方法:

class Event < AR::Base 
    scope :expired, -> { where('eventdate < ?', Date.today) } 

    def expired? 
    eventdate < Date.today 
    end 
end 

要列出所有過期事件,你可以簡單地調用:

Event.expired 

如果您列出了所有事件並希望爲過期的事件添加一些自定義邏輯,則可以將此邏輯封裝在if event.expired?中。

你或許也應該逆範圍以及:

scope :not_expired, -> { where.not('eventdate < ?', Date,today) } 
+0

很好,現在就去看看吧,那我怎麼才能比較date.today和現場事件的日期呢? ps是'Date,today'意思是'Date.today'? –

+0

@Mdunbavan - 是的,這是一個錯字。我不確定我是否理解你的問題 - 你已經有了一個方法來比較這些值。 – BroiSatse

+0

是的,屬性的名字是'eventdate',在這個例子中'date'意思是屬性的名字? –

相關問題