|
- require 'mini_magick'
-
-
- class Post < ApplicationRecord
- belongs_to :parent, class_name: 'Post', optional: true, foreign_key: 'parent_id'
- belongs_to :uploaded_user, class_name: 'User', optional: true
- has_many :post_tags, dependent: :destroy
- has_many :tags, through: :post_tags
- has_many :user_post_views, dependent: :destroy
- has_one_attached :thumbnail
-
- def as_json options = { }
- super(options).merge({ thumbnail: thumbnail.attached? ?
- Rails.application.routes.url_helpers.rails_blob_url(
- thumbnail, only_path: false) :
- nil })
- rescue
- super(options).merge(thumbnail: nil)
- end
-
- def resized_thumbnail!
- return unless thumbnail.attached?
-
- image = MiniMagick::Image.read(thumbnail.download)
- image.resize '180x180'
- thumbnail.purge
- thumbnail.attach(io: File.open(image.path),
- filename: 'resized_thumbnail.jpg',
- content_type: 'image/jpeg')
- end
- end
|