0

我正在開發一個網站(含Rails 3.1),其中有限的'編寫者'能夠寫入帖子。 '版主'應該接受(或拒絕)帖子並安排發佈。直到現在這個開發過程非常基礎。安排在rails 3博客中發佈帖子

每天有兩個發佈時刻。接受的帖子將被放入某種隊列中。每天上午10點和下午4點,最早接受的帖子必須發佈。 但是,我還需要能夠**手動設置**發佈後的日期和時間。

實現結果的最佳方式是什麼?克龍?背景工作?

回答

1

所以......

1)具有accepted_at場,您也可以手動設置;這是'上線的時間'。

2)

class Post 
    scope :ready_to_be_published, lambda{ where(['accepted_at<? and not published', Time.zone.now]).order('accepted_at ASC') } 

    def accept!(time_to_go_live = nil) 
    update_attributes!(:accepted_at => time_to_go_live || Time.zone.now) 
    end 
end 

3)必須在上午10點和下午4點whenever作業運行rake任務

task :publish_a_post => :environment do 
    Post.ready_to_be_published.first.update_attributes!(:published => true) 
end 
+0

或者您也可以有單獨的'accepted_at'和'go_live_at'領域,所以實際接收時間也被記錄下來。 –

+0

哇!謝謝! 如果簡單,有些事情是最好的。 – Ivan