Я работаю над проектом Ruby on Rails с ruby-2.5.0 и Rails 5. Я работаю над api-частью, я использовал гем jsonapi-serializer в своем приложении.Я хочу добавить условный атрибут в сериализатор.
Контроллер:
class RolesController < ApplicationController
def index
roles = Role.where(application_id: @app_id)
render json: JSONAPI::Serializer.serialize(roles, is_collection: true)
end
end
Сериализатор:
class RoleSerializer
include JSONAPI::Serializer
TYPE = 'role'
attribute :id
attribute :name
attribute :application_id
attribute :application do
JSONAPI::Serializer.serialize(object.application)
end
end
Здесь приложение представляет собой модель, в которой роли и роли has_many принадлежат приложению.,Я хочу добавить детали приложения в некоторых условиях.Я также пробовал как:
Контроллер:
class RolesController < ApplicationController
def index
roles = Role.where(application_id: @app_id)
render json: JSONAPI::Serializer.serialize(roles, is_collection: true, params: params)
end
end
Сериализатор:
class RoleSerializer
include JSONAPI::Serializer
TYPE = 'role'
attribute :id
attribute :name
attribute :application_id
attribute :application do
JSONAPI::Serializer.serialize(object.application), if: @instance_options[:application] == true
end
end
Но @instance_options - ноль.Пожалуйста, помогите мне, как я могу это исправить.Заранее спасибо.