Я использую гем ActiveModelSerializers
в моем проекте Rails API.
Я создал JobsController
внутри app/controllers/v1/jobs_controller.rb
из-за управления версиями API.
Я также создал JobSerializer
внутри app/serializers/v1/job_serializer.rb
также из-за управления версиями API.
Когда я пытаюсь получить доступ к V1::JobSerializer
внутри контроллера следующим образом:
def today_jobs
todays_jobs = Job.where(created_at: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day).all.order('created_at DESC').page(params[:page] ? params[:page].to_i : 1).per(10)
render json: {objects: ActiveModel::Serializer::CollectionSerializer.new(todays_jobs, each_serializer: V1::JobSerializer), meta: pagination_meta(todays_jobs)}
end
Не обращайте внимания на разбиение на страницы, это часть важна:
objects: ActiveModel::Serializer::CollectionSerializer.new(todays_jobs, each_serializer: V1::JobSerializer)
Когда я пытаюсь вернуть это, он говорит uncaught throw :no_serializer
, потому что я думаю, что он не знает, что такое V1::JobSerializer
.
Просто чтобы убедиться: jobs_controller.rb
определяется так:
class V1::JobsController < ApplicationController
end
и job_serializer.rb
определяется так:
class V1::JobSerializer < ActiveModel::Serializer
end
Что мне делать, чтобы иметь доступ к V1::JobSerializer
внутри моих заданий контроллер?