【问题标题】:Rails - return empty json when serializing 'distinct' on single AR columnRails - 在单个 AR 列上序列化“不同”时返回空 json
【发布时间】:2014-03-17 09:27:13
【问题描述】:

我的汽车模型是 JSON 序列化的(CarSerializer 类 @cars.blank? 进行测试无济于事,因为没有返回 nil/empty 数组。有关 AR 对象的检查,请参见下文。

   def get_reserve_ids

    # @cars.inspect ==> #<ActiveRecord::Relation [#<Car id: nil, car_reserve_id: nil>]>
    @cars = Car.select(:car_reserve_id)
    .where(client_id: current_user.client_id).distinct

    # @cars.inspect ==> [nil]
    # @cars = Car.select(:car_reserve_id)
    # .where(client_id: current_user.client_id).map(&:car_reserve_id).uniq

    logger.debug @cars.inspect

    render json: @cars, only: [:car_reserve_id]

  end

【问题讨论】:

    标签: ruby-on-rails json ruby-on-rails-4


    【解决方案1】:

    你应该返回@cars.compact——它会从数组中删除所有空值,所以你会返回一个空数组。

    【讨论】:

    • 使用.map 选项!现在我可以测试if @cars.blank? render :json =&gt; [], status: :ok else ...。谢谢 - 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2015-10-08
    • 2015-05-14
    • 2022-12-03
    相关资源
    最近更新 更多