【问题标题】:Rails Fast Json API includes scopeRails Fast Json API 包括范围
【发布时间】:2020-12-04 12:25:58
【问题描述】:

在我的 Rails 6/Grape API 应用程序中,我有一个序列化程序,我想只包含活动的旅程(活动的意思是 Journey.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 有什么不同吗?

【问题讨论】:

    标签: ruby-on-rails ruby grape fastjsonapi


    【解决方案1】:

    这行错了,需要改成...

     current_user
      .journey_progresses
      .joins(:journey)
      .where(journeys: { is_deleted: false })
    

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 1970-01-01
      • 2014-07-24
      • 2014-11-27
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      相关资源
      最近更新 更多