目前,我有一個案例模型與過濾器:自定義過濾器使用2級陣列
filter :specialty, as: :select, collection: Specialty.order(:category, :name)
過濾器下拉菜單可顯示此:
category1 - name1
category1 - General
category1 - name2
category2 - name1
category2 - name2
category2 - name3
在:name
有一個字符串General
這我總是希望成爲按字母順序排列的列表的頂部。因此,過濾器將始終按字母順序顯示:category
,然後按字母順序顯示:name
。
我想這個下拉菜單顯示此:
category1 - General
category1 - name1
category1 - name2
category2 - name1
category2 - name2
category2 - name3
我決定寫在Case模型的方法,這樣我可以在AA過濾器這樣的中調用它:
filter :specialty, as: :select, collection: Specialty.my_method
的my_method
目前看起來是這樣的:
def self.my_method
groups = []
category_list = Specialty.distinct(:category).pluck(:category, :name)
category_list.sort_by! do |category, name|
name == 'General' ? "#{category}, #{''}" : "#{category}, #{name}"
end
category_list.each do |category|
groups << [category, Specialty.where(category: category).order('name')]
end
return groups
end
的問題是,這表明下拉作爲一個數組,而不是字符串,它看起來像這樣:
["category1", "General"]
["category1", "name1"]
["category1", "name2"]
["category2", "name1"]
["category2", "name2"]
["category2", "name3"]
我將如何修改我的代碼,使之正確顯示? 快速搜索有什麼關係嗎?
謝謝,但不幸沒有返回正確的下拉列表中也是如此。它顯示了一些奇怪的對象,並將它們各自特定類別下的所有名稱作爲一個選項進行分組。 – JCC