0

"ライター"の限定セットが投稿を書くことができるウェブサイト(Rails 3.1)を開発しています。 「モデレーター」は投稿を受け入れる(または拒否する)べきで、出版を予定するべきです。この瞬間まで開発プロセスはかなり基本的です。レール3のブログでの投稿の公開スケジュール

毎日公開の瞬間が2つあります。受け入れられた投稿は何らかの種類のキューに置かれます。毎日午前10時から午後4時まで、最も受け入れられた投稿を公開する必要があります。 でも、投稿がライブになる日時を**手動で設定する必要があります。

結果を得るにはどうすればよいですか? Cron?バックグラウンドジョブ?

答えて

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)はrakeタスク

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

を実行するために、午前10時と午後4時にwhenever仕事を持っているか、あなたは別の 'accepted_at'と' go_live_at'フィールドを持つことができるので、実際の受け入れ時間も記録されます。 –

+0

うわー!ありがとう! シンプルであれば、最善を尽くしているものもあります。 – Ivan

関連する問題