[英]ActiveAdmin filter: a has_many: through attribute
我想根據通過 has_many :foo 到 :bar 關系鏈接的模型的屬性過濾 ActiveAdmin 表。
例如,如果一本書
has_many :borrowers, through: :book_checkouts
...如何在圖書的 ActiveAdmin 頁面上添加過濾器選項以讓用戶過濾借用者 ID? (作為一個字符串;我們的圖書館有太多的借閱者,在這里使用 Select 很笨拙。)
在您的 ActiveAdmin 頁面中,您可以添加如下過濾器:
filter :column_name_1
filter :column_name_2
因此,您將為borrowers
創建一個新的過濾器語句,但默認情況下,它將創建一個選擇。
filter :borrowers
因此,為了告訴它您不想使用選擇,您必須使用要過濾的關聯中的哪一列修改您提供的符號。 因此,如果您想按借款人的 ID 進行過濾,您將執行以下操作:
# You specify as: :numeric to so ActiveAdmin knows to add
# filtering options for numbers. So when it renders on the page,
# for the filter option it will display three options to filter by:
# ID equals, is greater than, or is less than
filter :borrowers_id, as: :numeric
例如,如果要按字符串形式的另一列(例如name
)進行過濾,請執行以下操作:
filter :borrowers_name, as: :string
注意:我還注意到,如果您沒有指定as: :type
則 ActiveAdmin 將無法識別過濾器,也不會為其呈現任何內容。
由問題的答案提供幫助: Active Admin - 通過 has_many 關聯的存在進行過濾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.