アーカイブ機能の実装について
アーカイブ機能を実装してみた。
条件は以下の通り。
・statusがtrueになっている
且つ
・最終更新日時から1時間を経過している
のどちらにも該当したものはリストから除外する。
アーカイブ側は上記条件通りにwhereを書けば良いので単純。
def archive
@archives = current_user.tasks.where("status = :status AND updated_at < :updated_at", { status: true, updated_at: 1.hours.ago } )
end
で、アーカイブに該当しない条件は次の通り。
def task
@tasks = current_user.tasks.where("status = :status OR updated_at >= :updated_at", { status: false, updated_at: 1.hours.ago } )
end
これで
・statusがfalseになっている(未完了タスク)
又は
・最終更新日時から1時間以内(状態に関わらず1時間以内)
の条件で抽出出来る。