ぼざクリ タグ広場 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.
 
 
 
 
 
 

32 lines
1.0 KiB

  1. require 'mini_magick'
  2. class Post < ApplicationRecord
  3. belongs_to :parent, class_name: 'Post', optional: true, foreign_key: 'parent_id'
  4. belongs_to :uploaded_user, class_name: 'User', optional: true
  5. has_many :post_tags, dependent: :destroy
  6. has_many :tags, through: :post_tags
  7. has_many :user_post_views, dependent: :destroy
  8. has_one_attached :thumbnail
  9. def as_json options = { }
  10. super(options).merge({ thumbnail: thumbnail.attached? ?
  11. Rails.application.routes.url_helpers.rails_blob_url(
  12. thumbnail, only_path: false) :
  13. nil })
  14. rescue
  15. super(options).merge(thumbnail: nil)
  16. end
  17. def resized_thumbnail!
  18. return unless thumbnail.attached?
  19. image = MiniMagick::Image.read(thumbnail.download)
  20. image.resize '180x180'
  21. thumbnail.purge
  22. thumbnail.attach(io: File.open(image.path),
  23. filename: 'resized_thumbnail.jpg',
  24. content_type: 'image/jpeg')
  25. end
  26. end