Железнодорожные куки - Удалить запись со страницы после даты истечения срока - PullRequest
0 голосов
/ 06 августа 2009

Rails - использование куки, как удалить запись со страницы после истечения срока действия.

Это должно произойти на странице просмотра

lead_row.created_at.strftime ("% b% d,% Y"),: expires => 5.days.from_now}%> ... должен пойти, чтобы удалить страницу .. без любой ссылки ...

1 Ответ

2 голосов
/ 06 августа 2009

Вам не нужно перенаправлять на страницу удаления, чтобы удалить элемент. А прежде чем фильтр может работать.

# 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 дней, я настоятельно рекомендую не использовать файлы cookie, а добавить в вашу модель столбец 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, чтобы найти все просроченные записи и удалить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...