У меня есть модель Thing
с атрибутом rating
, который со временем изменится. Я хочу, чтобы узнать, что значение любого Thing.rating
было на определенную дату.Есть ли лучший способ записывать значение атрибута каждый день?
Например, если @thing = Thing.first
и @thing.rating
был равен 5
13 января 2015 года, я хочу, чтобы иметь возможность вернуть это значение на любом будущем.
Одна идея у меня была в том, чтобы создать новую модель под названием ThingPast
, которая belong_to Thing
и Thing
бы have_many_of ThingPast
. ThingPast
будет иметь атрибуты thing_id
, rating
и date_created
. Каждый день в определенное время задание Cron создает ThingPast
для каждого Thing
и просто копирует атрибут rating
.
Я думаю, что это технически будет работать, но оно кажется излишне сложным и неэффективным. Кто-нибудь знает о лучшем, более простом способе добиться этого?
Я думаю, что вы описали является наиболее логичным способом, Мне будет очень интересно услышать любые альтернативные предложения. Только один комментарий от меня состоял бы в том, чтобы, возможно, изменить имя от «ThingPast» до «ThingRating».Вы записываете значения настоящего, а также прошлое, и вы записываете «Рейтинги» для «Вещей», поэтому также может иметь очевидное имя, которое точно отражает это. Я думаю, что пока вы индексируете 'thing_id', вам будет хорошо с этим подходом. – Matt