避免在meta_search中选择*查询

时间:2011-10-25 17:32:30

标签: ruby-on-rails ruby ruby-on-rails-3 meta-search

我在rails 3网站上使用meta_search gem,我发现meta_search生成的select *查询在数据库模式中获取BLOB字段时出现了一些性能问题。我不愿意迁移底层架构来解决这个问题。有没有办法在meta_search生成的搜索查询中包含/排除某些字段?

1 个答案:

答案 0 :(得分:0)

定义在Rails Active Record中的查询中返回哪些字段的机制是.select(...),默认情况下为*。检查this SO answer以获取定义默认范围的方法,该默认范围包括除一个字段之外的所有内容。

然而,有关此问题的警告是,当您要写入表时,您需要覆盖默认范围 - 一旦使用.select字段为只读字段。

我使用名为ransack的meta_search的继承者,鉴于其作者Ernie Miller有多么出色,很可能有一种内置方法可以做到这一点: - )

当我第一次使用它们时,Blob似乎是个好主意...但是,呃,不是那么多。