我想创建使用我的模型实例方法的Active Admin过滤器。
我的模型名称只是Item
,此模型的方法为used_in_widget?
,当然会返回true
/ false
。
现在,我想创建一个由select选项表示的Active Admin过滤器,其中包含Any
,Yes
和No
选项。
我的过滤器代码:
filter :used_in_widget, as: :select, collection: { 'Yes' => true, 'No' => false }
我知道我应该用户搜查。
这是我使用ransack代码的简化模型:
class Item < ActiveRecord::Base
scope :used_in_widget_eq, -> (is) { all.select { |o| is == o.used_in_widget? } }
ransacker :used_in_widget,
formatter: proc { |v| used_in_widget_eq(v == 'true') } do |parent|
parent.table[:id]
end
这不会产生任何错误,但当我按Yes
或No
过滤时,会返回0结果。
我需要建议,任何想法?
由于
编辑:
def used_in_widget?
grip.used_in_widget? || grip.decks.any?(&:used_in_widget?)
end