1

私にはPeopleがいて、Peoplehas_manyWatermelonだとしましょう。

People属性に対して機能するfilter_byがあります。例:

: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 に答える