Как 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

Другие вопросы по тегам