rails searchlogic插件在多列中搜索

时间:2009-07-12 08:44:49

标签: ruby-on-rails

我有一个搜索引擎的表单。我想在特定模型的所有领域中搜索searchterm。

我正在使用searchlogic插件。它给了我很多新的发现者,但我不能在两个领域之间进行OR。

例如:

如何执行“SELECT * from my_table WHERE field1 LIKE'%xpto%'OR field2 LIKE'%xpto%'?

特别是在将传递给我的控制器的表单参数中,如果你知道searchlogic你知道我在说什么,我试图传递类似:field1_or_field2_like(“xpto”),但它不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

嗯......我认为Searchlogic默认不提供这样的功能。但是为什么不亲自写下named_scope?

class MyModel
  named_scope :field1_or_field2_like lambda { |*args| {:conditions => ["field1 LIKE '%?%' OR field2 LIKE '%?%'", args.first, args.first]} }
end

答案 1 :(得分:1)

基于插件作者的这个post,并不打算对此提供支持,尽管Jongsma指出你可以使用自己的named_scope来实现它。