Active Admin允许我查看索引页上显示的define filters个,如下所示:

ActiveAdmin.register Promo do

  filter :name
  filter :address
  filter :city
  filter :state
  filter :zip

end

我想把上面的所有字段合并成一个,这样我就可以搜索包含名称或完整地址搜索字符串的促销品.我的模型已经有一个可以使用的命名范围:

class Promo < ActiveRecord::Base
  scope :by_name_or_full_address, lambda { |q| where('name LIKE :q OR address LIKE :q OR city LIKE :q OR state LIKE :q OR zip LIKE :q', :q => "%#{q}%") }
end

推荐答案

Active Admin使用meta_search gem作为过滤器.例如,Order条件语法允许在一个查询中组合多个字段

Promo.metasearch(:name_or_address_contains => 'brooklyn')

在Active Admin DSL中,这转换为

ActiveAdmin.register Promo do

  filter :name_or_address, :as => :string

end

Ruby-on-rails相关问答推荐

如何修改使用Google Cloud App Engine部署rails 7应用程序的步骤

Ubuntu Webhooks无法读取安装的正确RVM Ruby

刺激中的Rails 7和 bootstrap 错误-无法解析模块说明符 bootstrap

Rails 创建自定义函数/方法以及存储位置

序列化来自关联的不可变数据是个好主意吗?

'elseif' 还存在吗?

如何使用 Rails 3 / Rack 在没有 www 的情况下重定向?

使用 Rspec 测试 Rails 3.1 可安装引擎

如何在两个日期之间生成随机日期和时间?

如何使用 Capistrano gem 为生产数据库 seeder ?

在 Rails 中将毫秒转换为格式化日期

如何确定 Rails 是从 CLI、控制台还是作为服务器运行?

如何独立测试模型的回调方法?

Rails 4 迁移:如何重新排序列

Rails 3. 构建 oauth2 提供程序

rails回形针和乘客`'识别'命令无法识别`

我如何在具有活动记录的 Rails 中使用两个不同的数据库?

Heroku - 在浏览器中显示当前提交的哈希

Rails:如何在rails中使用dependent::destroy?

在 Ruby on Rails 中设置日志(log)记录级别