Как Paperclip Gem использует <attachment>_updated_at и каково его значение?
PaperClip Gem добавляет атрибут по умолчанию под названием -> _updated_at. Какая польза от _updated_at в отношении скрепки.
Использование _updated_at в драгоценном камне скрепки (ROR, рубин)
Ссылки: https://github.com/ Thoughtbot/paperclip/blob/main/lib/paperclip/attachment.rb#LL310C4-L315C8.
https://www.rubydoc.info/github/ Thoughtbot/paperclip/Paperclip%2FAttachment:updated_at
У меня есть столбец обновленный_at отдельно для модели, скажем, фото, а столбец с именем photo_updated_at создается как часть схемы. Какова польза от этого столбца photo_update_at?
# Returns the last modified time of the file as originally assigned, and # lives in the <attachment>_updated_at attribute of the model. def updated_at time = instance_read(:updated_at) time && time.to_f.to_i end
1 ответ
разница между<attachment>_updated_at
и то, что второй будет обновляться каждый раз, когда модальное окно меняет какой-либо атрибут, скажем, вы добавили какой-то дополнительный атрибут, напримерdownloads
чтобы подсчитать количество загрузок файла или любую другую вещь, которую вы хотите отслеживать, затем, когда вы обновляете этот или любой другой атрибут, он изменяет значениеupdated_at
к текущему моменту обновления модели.
Но поскольку PaperClip позволяет вам иметь несколько вложений для каждой модели, скажем, у вас есть модель профиля, которая позволяет вам прикреплять аватар, но также позволяет прикреплять что-то вроде изображения покемона, тогда у вас будет
<Profile
pokemon_img_updated_at:
pokemon_img_file_size:
...the rest of the pokemon attachment related attributes
avatar_updated_at:
avatar_file_size:
...the rest of the avatar attachment related attributes
>
На этом этапе вы, вероятно, поняли, что update_at каждого атрибута вложения будет обновляться только при изменении конкретного вложения, это упоминается в разделе « Использование» репозитория github https://github.com/ Thoughtbot/paperclip#usage