Rails にレコードのリストがあり、これらのレコードには公開または非公開にするブール フィールドがあります。updated_at >= 30 日前になると、すべてのパブリック レコードをプライベートに変更する方法が必要です。
どこから始めればよいかわかりません。アドバイス、リンク、ヒントは大歓迎です。ありがとうございました!
ソリューション
@lol007 からの推奨に従って、いつでも gem を使用します。私が従う手順は次のとおりです。
- テーブル Post title:string content:text status:boolean を使用してアプリを作成し、最初にサーバーを実行して情報を追加してから、サーバーを停止して他の手順を続行します。
- いつでも gem を gemfile に追加し、bundle install を実行します。
- いつでも実行します。コンソールで config/schedule.rb ファイルを作成する
models/post.rb に次のコードを追加します。
def self.check_updated_at where('updated_at < ?', 30.minutes.ago).update_all({ :status => :true }) end
次のコードを config/schedule.rb に追加します。
every 3.minutes do runner "Post.check_updated_at" end
私は開発に取り組んでいるので、次のコマンドを実行します。
$ whenever --update-crontab --set environment='development'
次に、cron が機能していることを確認するために、次のコマンドを実行します。
$ crontab -l
私の最後のステップは、Rails サーバーを実行し、アプリを動作させることです。
テストで使用した他の行は次のとおりです。
$ whenever -w
本番環境で cron ファイルを生成します。と
$ crontab -r
cronファイルを削除するには、必要なものではない場合。
お時間とご意見をお寄せいただきありがとうございます。