レール3のブログで投稿の公開をスケジュールする

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

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

結果を達成するための最良の方法は何ですか? Cron?バックグラウンドジョブ?

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時にrakeタスクを実行するには、いつでものジョブを持っている

task :publish_a_post => :environment do
  Post.ready_to_be_published.first.update_attributes!(:published => true)
end
1
追加された
または、 accepted_at go_live_at フィールドを別々に指定することもできます。
追加された 著者 Leonid Shevtsov,
うわー!ありがとう!シンプルであれば、最善を尽くしているものもあります。
追加された 著者 Ivan,