Active_admin 和 :filter
问题在于:filter :contact, :as =>如果我输入联系人的 ID,则 :string 会成功运行。但当您有 2000 多个联系人时,这就不太现实了。如何成功过滤 :contact,如 => :string 但让它搜索 :name 而不是 :id。
我尝试了以下操作,但没有成功:
filter :contact, :as => :string, :collection => proc {Contact.where(:name => 'Paul' )}
filter :contact, :as => :string, :collection => proc { (Contact.order.all).resources{|c| [c.name]}}
注意:我的存储库可以在此处找到。
模型:order.rb
belongs_to :contact
迁移:
def change
create_table :orders do |t|
t.string :tag
t.text :description
t.string :technician_id
t.string :status
t.string :type
t.string :contact_id
t.string :business_id
t.timestamps
end
end
admin/orders/ -orders.rb
filter :business
filter :contact, :as => :string, :collection => proc { (Contact.order.all).resources{|c| [c.name]}}
filter :tag
filter :description, :label => "Status"
filter :created_at
index do
column :business
column :contact
column :tag
column :status
column :description, :sortable => false do |order|
truncate(order.description, :length => 30)
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Activeadmin 使用meta_search gem,所以试试这个:
Activeadmin uses meta_search gem, so try this: