График публикации поста в блоге rails 3 - PullRequest
0 голосов
/ 28 октября 2011

Я занимаюсь разработкой веб-сайта (с Rails 3.1), на котором ограниченное количество «писателей» могут писать посты.«Модераторы» должны принять (или отклонить) сообщение и запланировать публикацию.До этого момента процесс разработки довольно прост.

Каждый день публикуются два момента публикации.Принятые сообщения будут помещены в какую-то очередь.Каждый день в 10:00 и 16:00 должен быть опубликован самый старый принятый пост. Однако , мне также нужно иметь возможность ** вручную установить ** дату и время начала публикации.

Каков наилучший способ достижения результата?Cron?Фоновые задания?

1 Ответ

1 голос
/ 28 октября 2011

Итак ...

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:00 и 16:00 для запуска граблей

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