2017-03-21 49 views
1

On Activeadmin我有一個events_date表。在儀表板上,我試圖只顯示即將到來的活動日期。我無法弄清楚如何做到這一點。這是我到目前爲止的代碼:在activeadmin儀表板上,試圖僅顯示未來的事件

 column do 
     panel "Upcoming Events" do 
     table_for EventDate.order("event_date asc").limit(20), sortable: true do 
      column :event_date 

      column "Event Name" do |event_date| 
        event_date.event_location.event.name 
        end 
      column "Agency Id" do |event_date| 
        event_date.event_location.event.agency_id 
        end    
      end 
     end 
     end 
    end 

正如你所想,這給了我所有的事件日期。我怎樣才能讓它只顯示我今後的日期?

+0

該代碼看起來沒問題。我不確定我以前看過一個嵌套在列中的面板,但我不認爲這是一個問題。它呈現多少條記錄是20多個? –

+0

是的,代碼的作品,並給我所有的事件。但是,我只想要展示未來的事件。所以如果活動日期是昨天或過去,我不希望它顯示。 –

回答

1

您可以使用arel_table獲取大於或等於Time.zone.now的查詢。

class EventDate > ActiveRecord::Base 
    scope :future, -> { where(arel_table[:event_date].gteq(Time.zone.now)) } 
    # another way of doing it 
    scope :future, -> { where("event_date >= ?", Time.zone.now) } 
end 

# active admin 

table_for EventDate.future.limit(20), sortable: true do 
    column :event_date 

    column "Event Name" do |event_date| 
    event_date.event_location.event.name 
    end 

    column "Agency Id" do |event_date| 
    event_date.event_location.event.agency_id 
    end    
end 


# Should give this query 
EventDate Load (0.7ms) SELECT "event_dates".* FROM "event_dates" WHERE "event_dates"."event_date" >= '2017-03-22 13:39:38.427240' 
+0

不確定希望實現該代碼。我把它放在ActiveAdmin.register_page「儀表板」下,然後做 但是我似乎無法讓它工作。 –

+0

範圍:未來應該在EventDate模型中。 –

相關問題