Rails 3 Модификация updated_at - PullRequest
6 голосов
/ 08 марта 2011

Я создаю модель CourseEnrollment и всякий раз, когда пользователь просматривает курс, я хочу обновить базу данных с текущей отметкой времени. Должен ли я просто обновить существующее поле updated_at или создать отдельное поле для модели?

Ответы [ 3 ]

11 голосов
/ 08 марта 2011
5 голосов
/ 08 марта 2011

Я бы создал отдельное поле.updated_at не совсем правильно сообщает о своей цели.Что-то вроде last_viewed_at было бы более уместным.Конечно, updated_at будет обновляться при обновлении last_viewed_at, поэтому вам нужно найти способ переопределить это, когда все, что вы хотите сделать, это обновить этот столбец.

Вы можете временно отключить обновление отметки времени с помощьюустановив self.record_timestamps в false в before_filter, а затем повторно включив его в after_filter.

0 голосов
/ 08 марта 2011

Если я правильно понимаю, вы хотите создать в CourseEnrollment столбец с именем last_viewed_at, который устанавливается каждый раз, когда пользователь просматривает записанное?

Если вы хотите это сделать, создайте миграцию, чтобы добавить столбец last_viewed_at в свой CourseEnrollment (не перезаписывайте поле rails updated_at). Затем либо в логике контроллера, либо на уровне модели вы можете обновить это поле. Это зависит от того, как вы хотите, чтобы это было реализовано.

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