13

この質問は、ActiveAdmin gem に関連しています。ブール型の列をフィルタリングしようとしていますが、成功filter :column_namefilter :column_name, :as => :booleanません。機能しません。

何か案が?

ありがとう!

4

3 に答える 3

21

filter :column_name, :as => :select値が「Any」、「True」、「False」のドロップダウンを作成します

于 2011-09-30T10:38:24.973 に答える
11

ActiveAdmin 0.6.2 の時点で、これを使用filter :column_name, as: :selectすると、完全なテーブル スキャンを実行するという恐ろしい副作用が生じます。さらに、そのオプションは「Any」、「true」、「false」になりました。

たとえば、ブール列を持つモデルがある場合、Districtクエリを生成して 3 つの値を取得します。私の地区テーブルは非常に大きいので、これは明らかに私が望んでいるものではありません。enabledfilter :enabled, as: :selectSELECT DISTINCT "districts"."enabled" FROM "districts" ORDER BY enabled asc

OTOH を使用できるようfilter :column_name, as: :booleanになりましたが、デフォルトでチェックされていないチェックボックスが使用されますが、これも私が望むものではありません。

0.6.2 より前の動作に戻すには、次のようにする必要がありましたfilter :enabled, as: :select, collection: [["Yes", true], ["No", false]]。ActiveAdmin は、「Any」の値をドロップします。

于 2013-12-09T22:06:59.700 に答える