2016-04-25 9 views
0

その他の質問を見ると、0.10ではクエリパラメータのフィルタリングの古い方法がサポートされていないようです。アクティブモデルシリアライザ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)などに渡すことができるようにしたい

この。

+1

利用可能であるべきであるあなたは、古い何を意味するのですか? 0.10バージョンは0.8バージョンのメソッドセットをサポートします。 –

答えて

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 

注:アダプター用に予約されていないことレンダリングに渡さ任意のオプションが

+0

良い答え。シリアライズスコープを使用することもできます。 – BF4

関連する問題