问题描述
我有一个模型产品,我想用它的用户对其进行过滤,并且我已经使用了这段代码
filter :product_type_user_id_eq,as: :select,collection: -> {
User.all.map { |user| [user.name,user.id] }
},label: 'User'
我有成千上万的用户,所以当我使用上面的代码时,加载所有用户需要花费时间。 有什么方法可以在键入时应用搜索过滤器。因此,可以消除加载所有用户的第一步,当我在搜索过滤器中键入内容时,它会根据该数据为用户提供数据。
解决方法
我不确定我是否理解正确,但是如果您要搜索用户的som属性,则可以尝试使用Stimulus Reflex之类的方法。他们有一个适合您的用例的漂亮示例。
https://expo.stimulusreflex.com/demos/tabular
在这里您可以隐藏属性
请确保为您的查询字段建立索引,以提高性能
,有些基于Selectize的插件可能会有所帮助,例如。 ActiveAdmin::AjaxFilter。参见wiki。