如何在activeadmin rails的filter下拉列表中添加已排序的元素

我有一个Post模型,PostSource模型。 PostSource有很多post,post属于一个PostSource。

使用ActiveAdmin,在Post的Index操作中,我以这种方式显示PostSource的filter:

filter :post_source, label: 'Source' filter :category, as: :select, collection: Category.order(:name).collect { |cat| [cat.name, cat.id] } 

与控制器:

 controller do def scoped_collection end_of_association_chain.includes(:post_source) end end 

它显示源,但不按排序顺序显示。 在这种情况下如何对filter进行排序?

我尝试在filter上添加可排序的顺序,但它似乎不起作用

如果您正在尝试对第一个filter(’post_source’)进行排序,您可以像在第二行中一样添加一个集合,并在一个块中进行排序。

 filter :post_source, label: 'Source', collection: proc { PostSource.order(:name) } 

此语法也可以在第二个示例中用作替代方法。