Я создал приложение, использующее Rails API с внешним интерфейсом React и ActiveAdmin в качестве внутреннего сервера CMS, основанное на этого учебного пособия . Я добавляю модель, которая включает в себя изображение с использованием ActiveStorage для загрузки файлов, а также S3 для хранения на производстве.
app / models / photo.rb
class Photo < ApplicationRecord
has_one_attached :image
end
приложение / контроллеры / photos_controller.rb
class PhotosController < ApplicationController
include ActionController::Serialization
before_action :set_photo, only: [:show, :update, :destroy]
# GET /photos
def index
@photos = Photo.all
render json: @photos.to_json
end
...
def photo_params
params.require(:photo).permit(:image, :location_name, :region, :url)
end
end
приложение / сериализаторы / photo_seralizer.rb
class PhotoSerializer < ActiveModel::Serializer
attributes :id, :image, :location_name, :region, :url
def image
rails_blob_path(object.image, only_path: true) if object.image.attached?
end
end
при просмотре конечная точка API, прикрепленное изображение не отображается в объекте фотографии, здесь приведен пример возврата. Есть ли что-то, что мне не хватает в Сериализаторе, что не добавляется в похожее изображение? Любая помощь будет принята с благодарностью, спасибо!
[{
"id":1,
"location_name":"Acreage Ciderhouse",
"region":"Northern Metro",
"url":"https://example.com/acreage-ciderhouse/",
"created_at":"2020-01-09T15:18:33.298-07:00",
"updated_at":"2020-01-09T15:27:40.594-07:00"
}]