我正在寻找一种方法来执行以下操作。 实际上,我正在搜索一些文章,当我启动搜索时,我将参数作为一个数组,即`params [:categories] = [“1”,“4”,“5”,“8”]
现在,在使用thinkingSphinx进行搜索时,我会执行以下操作
#article.rb
def self.adv_search(query, categories)
Article.search(
query,
:with => {:category => },
)
end
启动搜索,如
adv_search(params[:q], params[:categories])
但我一直在获取一个空结果数组。任何人都知道如何TS管理数组?
答案 0 :(得分:3)
如果category是一个整数或整数集合的属性(按照你的例子),那么你需要做的一件事就是确保你输入一个整数数组,而不是字符串。过滤器:
Article.search query, :with => {:category => categories.collect(&:to_i)}
请注意,这将返回包含任何类别的所有文章。如果category是整数集合,并且您希望文章具有所有这些类别,那么您应该使用:with_all
而不是:with
。