轨。 Active Admin过滤器,基于模型方法

时间:2015-10-07 16:57:24

标签: ruby-on-rails filter activeadmin arel ransack

我想创建使用我的模型实例方法的Active Admin过滤器。

我的模型名称只是Item,此模型的方法为used_in_widget?,当然会返回true / false

现在,我想创建一个由select选项表示的Active Admin过滤器,其中包含AnyYesNo选项。

我的过滤器代码:

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

这不会产生任何错误,但当我按YesNo过滤时,会返回0结果。

我需要建议,任何想法?

由于

编辑:

def used_in_widget?
  grip.used_in_widget? || grip.decks.any?(&:used_in_widget?)
end

0 个答案:

没有答案