0
レール - クッキーを使用して、日付のexpiratonの後にページからレコードを削除する方法。これは、ビューページに起こるべきレールクッキー - 日付expiratonの後にページからレコードを削除
lead_row.created_at.strftime( "%Bの%dは、%Y")は、:期限が切れる=> 5.days.from_now}%> ...行くべきページを削除するにはリンクを外してください...レール - クッキーを使用して、日付のexpiratonの後にページからレコードを削除する方法。これは、ビューページに起こるべきレールクッキー - 日付expiratonの後にページからレコードを削除
lead_row.created_at.strftime( "%Bの%dは、%Y")は、:期限が切れる=> 5.days.from_now}%> ...行くべきページを削除するにはリンクを外してください...アイテムを削除するには、削除ページにリダイレクトする必要はありません。フィルタが動作する前にA。
# application_controller.rb
def destroy_when_cookie_is_nil
some_record.destroy if cookies[:time].nil?
end
# some controller
before_filter :destroy_when_cookie_is_nil
しかしクッキーの満了に基づいてレコードを削除することは私には良い解決策のように見えるしていません。 5日後にレコードを削除したい場合は、クッキーを使用せず、モデルにexpires_at
datetimeカラムを追加することを強くお勧めします。この列は、コールバックによって自動的に設定できます。
# in model
before_create :set_expiration
def set_expiration
self.expires_at = 5.days.from_now
end
名前付きスコープをモデルに追加して、期限切れではないレコードをフェッチすることができます。
# in model
named_scope :active, lambda { {:conditions => ["expires_at IS NULL OR expires_at >=", Time.zone.now]} }
次に、あなたは唯一の非期限切れのレコードを表示するItem.active
を呼び出すことができます。これらがデータベースから確実に削除されるようにするには、期限切れのレコードをすべて検索して削除するcronタスクを設定します。