Приложение gif-файла ActionText преобразуется в фотографию при отправке формы рельсов - PullRequest
0 голосов
/ 17 марта 2020

Так что я пытался это исправить некоторое время, и мне не повезло в этом. У меня есть модель сообщений, которые имеют has_rich_text: body

class Post < ApplicationRecord
  extend FriendlyId
  friendly_id :title, use: :slugged
  has_rich_text :body
  has_rich_text :health_check
  has_one_attached :cover_photo
  has_many :post_tags, dependent: :destroy
  has_many :tags, through: :post_tags

  after_commit :add_default_cover, on: [:create, :update]

  def add_default_cover
    unless cover_photo.attached?
      self.cover_photo.attach(io: File.open(Rails.root.join("app", "assets", "images", "default.png")), filename: 'default.png' , content_type: "image/png")
    end
  end
end

Он отлично работает, когда я прикрепляю фотографии, но когда я прикрепляю gif, он корректно загружается на экран редактирования / нового экрана, и я вижу анимацию GIF в редакторе форматированного текста. Но как только я отправляю форму редактирования / нового, создается новый вариант в виде изображения, и именно это используется при показе поста. Когда я проверяю свою систему хранения, я нахожу и изображение, и версию GIF.

Кто-нибудь знает, почему это происходит при отправке формы? Я хотел бы загрузить GIF-файл и отображать его без изменения текста или действия.

1 Ответ

0 голосов
/ 18 марта 2020

У меня была такая же проблема. Я закончил хакингом на клиентской стороне с JS.

Мой подход: на событии 'DOMContentLoaded' для страницы с GIF / MP4, я беру весь текст действия вложения, получить их URL, а затем для GIF я заменяю URL изображения stati c на GIF URL, а для MP4 я просто создаю новый элемент <video> и даю ему URL MP4. Это не красиво, но работает.

Вот пример в моем блоге . Дайте мне знать, если вы найдете лучший ответ, это похоже на то, что должно быть встроено в хранилище действий / текст.

...