我的Car模型是JSON序列化的(类CarSerializer< ActiveModel :: Serializer)。但是,对于下面的控制器方法,我只需要一个DISTINCT的reserve_ids列表,如果没有,AR应该返回空的JSON字符串/数组。我尝试使用@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
答案 0 :(得分:0)
你应该返回@cars.compact
- 它将从数组中删除所有空值,因此你将返回一个空数组。