簡體   English   中英

ActiveAdmin 過濾器:一個 has_many: through 屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM