如何解决Rails Fast Json API包含范围
在我的Rails 6 / Grape API应用程序中,我有一个序列化器,我只想包含活动旅程(活动,是指travel.is_deleted:false)。当前端点如下:
helpers do
def query
current_user.journey_progresses.joins(:journey).where('is_deleted',false)
end
end
get :journeys do
::Journeys::EnrolledJourneysSerializer.new(
query,include: [:journey],class: { Journey: ::Journeys::JourneyListSerializer },)
end
它包括所有旅程,无论它们是is_deleted: true
还是is_deleted: false
。我只想在is_deleted: false
中包含旅程,而不在序列化响应中显示已删除的旅程。
EnrolledJourneysSerializer
module Journeys
class EnrolledJourneysSerializer
include FastJsonapi::ObjectSerializer
belongs_to :journey,serializer: JourneyListSerializer
set_type :percent_progress
attributes :percent_progress,:started_at
end
end
JourneyListSerializer
module Journeys
class JourneyListSerializer
include FastJsonapi::ObjectSerializer
attribute :content do |object|
object.content.dig('attributes')
end
end
end
在Journey
模型上,与default_scope有什么不同吗?
解决方法
此行是错误的,需要更改为...
current_user
.journey_progresses
.joins(:journey)
.where(journeys: { is_deleted: false })
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。