ぼざクリタグ広場 https://hub.nizika.monster
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

31 lines
858 B

  1. class PostVersionRecorder < VersionRecorder
  2. def self.record! post:, event_type:, created_by_user:
  3. new(post:, event_type:, created_by_user:).record!
  4. end
  5. def initialize post:, event_type:, created_by_user:
  6. super(record: post, event_type:, created_by_user:)
  7. end
  8. def self.ensure_snapshot! post, created_by_user:
  9. return if post.post_versions.exists?
  10. record!(post:, event_type: :create, created_by_user:)
  11. end
  12. private
  13. def version_class = PostVersion
  14. def version_association = :post_versions
  15. def record_key = :post
  16. def snapshot_attributes
  17. { title: @record.title,
  18. url: @record.url,
  19. thumbnail_base: @record.thumbnail_base,
  20. tags: @record.snapshot_tag_names.join(' '),
  21. original_created_from: @record.original_created_from,
  22. original_created_before: @record.original_created_before }
  23. end
  24. end