我想将activeadmin过滤器与hstore一起使用:
在模特中,我有房间的柱子设施。
我想这样做:
过滤器:设施,:as => :select,:collection => PROC {{Room.all.map | R | r.amenities}}
答案 0 :(得分:4)
您可以为HStore数据类型创建Formtastic自定义输入。如果您不希望Hstore值可编辑,这应该足够了(您还可以使用input_html_options将输入字段设置为只读):
class HstoreInput < Formtastic::Inputs::StringInput
end
这会破坏写入时的属性值。
答案 1 :(得分:2)
使用最新的activeadmin
(使用ransack代替meta_search),可以为模型中的hstore字段定义自定义ransacker
:
class Room < ActiveRecord::Base
store_accessor :options, :amenities
ransacker :amenities do |parent|
Arel::Nodes::InfixOperation.new('->', parent.table[:options], 'amenities')
end
end
然后它可以在activeadmin
中用于过滤:
ActiveAdmin.register Room do
filter :amenities_eq, label: 'Amenities', as: :select # ...
end