У меня есть приложение только для API, которое отображает ответы JSON с GEM 'fast_jsonapi'.
Мне удалось загрузить видео с помощью ActiveStorage, и я могу отправить URL-адрес видео в ответе JSON. Но мне нужно отправить миниатюрный URL в том же ответе.
Я проверил документацию по Rails и Google и обнаружил, что есть способы сделать это в приложении Rails
<ul>
<% @message.files.each do |file| %>
<li>
<%= image_tag file.preview(resize_to_limit: [100, 100]) %>
</li>
<% end %>
</ul>
Но я не смог найти, как включить это в приложение только для API и отправить URL-адрес миниатюр в ответе JSON.
Сейчас это мой сериализатор, где я пытался найти решение, найденное в блоге, но пока оно не работает. Я не уверен, что это правильный подход или как я могу решить эту проблему.
class EjercicioSerializer
include FastJsonapi::ObjectSerializer
#include ActionView::AssetPaths
include ActionView::Helpers::AssetTagHelper
set_id :id
attributes :nombre, :descripcion
attribute :video_url do |object|
Rails.application.routes.url_helpers.rails_blob_path(object.video, only_path: true) if object.video.attachment
end
attribute :video_thumbnail do |object|
link_to(image_tag(object.video.preview(resize: "200x200>")),
Rails.application.routes.url_helpers.rails_blob_path(object.video, disposition: "attachment"))
end
end