1

假设我有 People,而 People has_many Watermelon 。

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

:filter_by => 'has_eaten_today'

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

:filter_by => 'watermelons.created_at'

谢谢!

4

1 回答 1

2

这个问题来自我并不真正了解 Sunspot-solr,但它很容易。

只需针对模型中的嵌套属性:

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 })

吃好喝好!

于 2010-08-23T16:32:07.577 回答