sunspot-solr filter_by嵌套属性?

时间:2010-08-23 14:36:05

标签: ruby-on-rails ruby search solr sunspot

假设我有人,而人们有很多西瓜。

我有一个可以用于People属性的filter_by,例如:

:filter_by => 'has_eaten_today'

但我可以为西瓜的嵌套属性做:filter_by吗?例如:

:filter_by => 'watermelons.created_at'

谢谢!

1 个答案:

答案 0 :(得分:2)

这个问题来自于我并不真正理解太阳黑子 - 太空战士,但它很容易。

只需定位模型中的嵌套属性:

def watermelon_time
  self.watermelon.created_at
end

然后将其添加到

searchable do
  time :watermelon_time
..

然后我的控制器:

query.with(:watermelon_time).equal_to(params[:filter_by] == 'watermelon_time' ? 'true' : false) if params[:filter_by]

额外奖金:

添加了一个链接以在我的

中编写此功能
= link_to 'Watermelon Time', url_for(:overwrite_params => { :filter_by => 'watermelon_time', :page => nil })

Bon Appetite!