前提・実現したいこと
特定のアクションが起きたらあるレコードを自動的に削除したいです。
具体的には、
what_day(サービスを始めて何日目か)が idealweight.period(サービス提供期間)を超えた段階で idealweightテーブルのそのユーザーのレコードを自動的に削除したいです。
ちなみにidealweightモデルは、
userモデルと1:1の関係性を持っています。
Rails
1##user.rb 2class User < ApplicationRecord 3 devise :database_authenticatable, :registerable, 4 :recoverable, :rememberable, :validatable 5 6 has_one :idealweight, dependent: :destroy 7 8#サービス開始から何日目か 9 def what_day 10 (today - idealweight.start_day).to_i+1 11 end 12 13end 14 15##idealweight.rb 16class Idealweight < ApplicationRecord 17 belongs_to :user 18 19end
なんとなくモデルに下記のようなコードを記載すればうまくいくかなと思いましたが、
def hoge Idealweight.where("idealweight.period <?", what_day).destroy end
cronなどを用いる必要があるのかわからない状況です。
特に繰り返し処理を行うわけではないので必要ないかとも思っています。
試したこと
補足情報(FW/ツールのバージョンなど)
Rails 5.2.4.3
ruby 2.5.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/18 09:33