我有一个带过滤器的ActiveAdmin页面。 我想基于getter(在资源上定义的方法,而不是ActiveRecord属性)设置自定义过滤器。
class House
def is_enchanted?
# Ask to witches and ghosts...
end
end
这是ActiveAdmin资源:
ActiveAdmin.register House do
filter :is_enchanted?
end
以上代码引发了以下异常:
undefined method `is_enchanted?_eq' for #<Ransack::Search:0xc188178>
答案 0 :(得分:1)
你可以使用范围
模型/ house.rb
class House
scope :is_enchanted?,
#where(....)
end
admin / house.rb
ActiveAdmin.register House do
scope :is_enchanted?
end
答案 1 :(得分:0)
您可以创建名为“ransackers”的自定义Ransack搜索方法。没有任何官方文档,因此您需要在GitHub上的Ransack问题跟踪器上进行一些搜索,以进行类似这样的讨论:https://github.com/activerecord-hackery/ransack/issues/36