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

inq*_*ive 6 ruby-on-rails activeadmin

我有一个Post模型,PostSource模型.PostSource有很多帖子,帖子属于一个PostSource.

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

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

与控制器一样:

controller do
  def scoped_collection
    end_of_association_chain.includes(:post_source)
  end
end
Run Code Online (Sandbox Code Playgroud)

它显示源,但不按排序顺序显示.在这种情况下如何对过滤器进行排序?

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

Laz*_*key 7

如果您正在尝试对第一个过滤器('post_source')进行排序,您可以在第二行中添加一个集合,然后在一个块中进行排序.

filter :post_source, label: 'Source', collection: proc { PostSource.order(:name) }
Run Code Online (Sandbox Code Playgroud)

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