通过查看其他问题,似乎0.10不再支持对查询参数进行过滤的旧方法。
class CategorySerializer < ActiveModel::Serializer
attributes :id, :name, :deals_count
def deals_count
byebug
Deal.includes(:categories).where(categories: { id: @object.id }).count
end
end
在交易模型上,我每周的每一天都有布尔(星期一,星期二,星期三......)
我希望能够传递(tuesday=true&, wednesday=true)
等作为过滤器添加此内容。
答案 0 :(得分:1)
您应该使用instance_options
。
# controller
render json: @category, days: [1, 2, 4, 6, 7]
你的序列化器应该是这样的:
class CategorySerializer < ActiveModel::Serializer
attributes :id, :name, :deals_count
def deals_count
Deal.where(days: instance_options[:days])
.includes(:categories).where(categories: { id: @object.id } ).count
end
end
注意:传递给渲染的任何未为适配器保留的选项都应该可用