前提・実現したいこと
あるアクションが起きた際にそのユーザーのあるレコードを自動で削除したいと考えております。
具体的には、
本日の日付(today_date)がサービス終了日(last_day_date)を超えた段階でidealweightテーブルの該当するユーザーのレコードを自動的に削除したいです。
ちなみにidealweightモデルは、
userモデルと1:1の関係性を持っています。
前回の質問でcronを用いるとお教えいただいたので実装を試みたのですが実行された様子がなく困っております。
該当コードを下記にはらせていただきますのでご教授いただけますと幸いです。
よろしくお願い致します。
該当のソースコード
##user.rb class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_one :idealweight, dependent: :destroy #今日の日付 def today_date @today = Date.today @today.strftime("%Y%m%d").to_i end #サービス最終日 def last_day_date idealweight.last_day.strftime("%Y%m%d").to_i end end
##idealweight.rb class Idealweight < ApplicationRecord belongs_to :user #狙いは『今日の日付』が『サービス最終日』を超えた場合該当するレコードを削除します def self.bye_idealweight Idealweight.where("current_user.start_day_date<?", current_user.today_date).destroy_all end end
##config/schedule.rb require File.expand_path(File.dirname(__FILE__) + "/environment") rails_env = ENV['RAILS_ENV'] || :development set :environment, rails_env set :output, "#{Rails.root}/log/cron.log" #10分単位で監視をし、先程指定したケースで該当するレコードを削除します(idealweight.rbで指定しています) every 10.minutes do runner "Idealweight.bye_idealweight" end
試したこと
ec2-user:~/environment/toreka (master) $ bundle exec whenever 0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd /home/ec2-user/environment/toreka && bundle exec bin/rails runner -e development '\''Idealweight.bye_idealweight'\'' >> /home/ec2-user/environment/toreka/log/cron.log 2>&1' ## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated. ## [message] Run `whenever --help' for more options. ec2-user:~/environment/toreka (master) $ crontab -l # Begin Whenever generated tasks for: /home/ec2-user/environment/toreka/config/schedule.rb at: 2020-08-18 12:18:56 +0000 0 0 * * * /bin/bash -l -c 'cd /home/ec2-user/environment/toreka && bundle exec bin/rails runner -e development '\''Idealweight.delete_idealweight'\'' >> /home/ec2-user/environment/toreka/log/cron.log 2>&1' # End Whenever generated tasks for: /home/ec2-user/environment/toreka/config/schedule.rb at: 2020-08-18 12:18:56 +0000 ec2-user:~/environment/toreka (master) $
補足情報(FW/ツールのバージョンなど)
Rails 5.2.4.3
ruby 2.5.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。