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