我正在开发一个网站(使用Rails 3.1),其中有限的“作家”能够撰写帖子。 “版主”应接受(或拒绝)帖子并安排发布。直到这一刻,开发过程才非常基础。
每天有两个发布时刻。接受的帖子将被放置在某种队列中。每天上午10:00和下午4:00必须发布最早的接受帖子。 但是,我还需要能够**手动设置**发布时间的日期和时间。
实现结果的最佳方法是什么?克龙?后台工作?
答案 0 :(得分: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工作来执行佣金任务
task :publish_a_post => :environment do
Post.ready_to_be_published.first.update_attributes!(:published => true)
end