ピスタチオを食べながらrailsを楽しむ

ピスタチオ大好きな著者のrailsを使ったツール作成の日記です。

アーカイブ機能の実装について

アーカイブ機能を実装してみた。

条件は以下の通り。

・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時間以内)

の条件で抽出出来る。