ActiveAdmin Collection对过滤数据的操作

我在索引页面上有一个自定义集合操作,我想访问该操作中的过滤数据。 我怎样才能做到这一点? 我可以自己collections吗? 或者filter参数?

collection_action :do_something do # call some async process redirect_to :action => :index, :notice => "started working!" end action_item :only => :index do link_to('DO WORK', do_something_admin_game_stats_path) end 

您应该传递scopefilter params作为link_to操作的选项,然后在collection_action使用scoped_collection

 link_to "DO WORK", do_something_admin_game_stats_path(param.slice(:scope, :filter)) 

我不确定filter是否是正确的param键,但原理应该是相同的。 如果由于某种原因你无法在动作链接中访问params ,请尝试使用controller.params或者如果你真的绝望了controller.send(:params) 。 在我的脑海中,我不确定这些参数是否可以公开获取。