[英]How to Customize the Filter in activeadmin
我想在activeadmin面板中為應用程序面板自定義過濾器。 目前,我有一個這樣的過濾器。
並想要這樣的過濾器
我這樣做的代碼如下
對於添加類別元素在過濾器我做如下代碼。
有3張桌子叫
而且我希望根據對過濾器類別的選擇,從application_categories中獲取過濾器數據。
表的結構如下。
申請表:
類別表
application_categories表
在activeadmin資源文件中
app / admin / applications.rb文件代碼
過濾器:status,:as =>:select,:collection => [“待處理”,“已批准”,“已拒絕”]
過濾器:featured,:as =>:select
過濾器:developer,:collection => proc {(Developer.all).map {| d | [d.company_name,d.id]}}
過濾器:category,:collection => proc {(Category.all).map {| c | [c.name,c.id]}}
過濾器:名稱
過濾器:version
過濾器:標簽
在應用程序模型文件中
在模型app / models / application.rb中
當屬:開發者
歸屬於:bundle
所屬:許可證
歸屬於:language
相關類:類別
has_many:application_categories,:depend =>:destroy
has_many:categories,:through =>:application_categories
它在過濾器面板中顯示類別元素,但是當我們選擇任何類別並單擊過濾器時,會產生錯誤,如下所示:
Mysql2 ::錯誤:未知柱在'applications.category_id' 'on子句':SELECT COUNT(DISTINCT count_column)FROM(SELECT applications
。 id
AS count_column FROM applications
LEFT OUTER JOIN categories
ON categories
。 id
= applications
。 category_id
WHERE categories
。 id
= 32 LIMIT 30 OFFSET 0)subquery_for_count
在app/admin/applications.rb
:
filter :categories
在app/models/application.rb
:刪除belongs_to :category
如果它不起作用,則必須更新ActiveAdmin gem: bundle update
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.