我想在 hstore 中使用 activeadmin 过滤器:
在模型中,我有带房间的列设施。
我想做这样的事情:
filter :amenities, :as => :select, :collection => proc {Room.all.map{|r| r.amenities} }
我想在 hstore 中使用 activeadmin 过滤器:
在模型中,我有带房间的列设施。
我想做这样的事情:
filter :amenities, :as => :select, :collection => proc {Room.all.map{|r| r.amenities} }
您可以为 HStore 数据类型创建一个 Formtastic 自定义输入。如果您不希望 Hstore 值可编辑,这应该足够了(您还可以使用 input_html_options 将输入字段设置为只读):
class HstoreInput < Formtastic::Inputs::StringInput
end
不过,这将破坏写入时的属性值。
使用 latest activeadmin
(使用ransack而不是meta_search)可以ransacker
在模型中为 hstore 字段定义自定义:
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