
・質問したい点
掲載したものに掲載期間を登録できるようにしました。
そこから掲載期間が過ぎたら自動で削除されるようにしたいのですが、controllerからifを使って自動削除させることはできるのでしょうか?
・plan.rb (モデル)
class Plan < ApplicationRecord belongs_to :user validates :title, presence: true, length: { maximum: 50 } validates :detail, presence: true, length: { maximum: 5000 } validates :start_on, presence: true validates :end_on, presence: true end
・plans_controller(コントローラー)
class PlansController < ApplicationController before_action :require_user_logged_in def new @plan = Plan.new if @plan.user == current_user redirect_to '/' end end def create @plan = current_user.plans.build(plan_params) if @plan.save flash[:success] = '企画掲載を設定しました' redirect_to root_url else @pagy, @plans = pagy(current_user.plans.order(id: :desc)) flash.now[:danger] = '企画掲載に失敗しました' render 'toppages/index' end end def destroy @plan.destroy flash[:success] = '掲載を削除しました。' redirect_back(fallback_location: root_path) end private def plan_params params .require(:plan) .permit(:content) end def correct_user @plan = current_user.plans.find_by(id: params[:id]) unless @plan redirect_to root_url end end end
↑このコントローラーに下記のコードを追加してみようと思うのですが、この記述は意味がないですか?
def self.plan_destroy @date = Date.today @plan = Plan.all if plan.end_on < date @plan.destroy end end
この上記の記述で掲載期間後に自動削除されますでしょうか。
ご意見を頂けると幸いです。
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
退会済みユーザー
2022/08/09 03:06