I want to filter Sunspot search results with with(:is_available, true) . This works with the User model, but I cannot get it to work with the Itinerary model.
application / controllers / search_controller.rb:
class SearchController < ApplicationController before_filter :fulltext_actions private def fulltext_actions @itineraries = do_fulltext_search(Itinerary) @users = do_fulltext_search(User) @itineraries_size = @itineraries.size @users_size = @users.size end def do_fulltext_search(model) Sunspot.search(model) do with(:is_available, true) fulltext params[:search] end.results end end
application / models / user.rb:
class User < ActiveRecord::Base has_many :itineraries, :dependent => :destroy searchable do text :first_name, :boost => 3 text :last_name, :boost => 3 text :status boolean :is_available, :using => :available? end def available? !self.suspended end end
application / models / itinerary.rb:
class Itinerary < ActiveRecord::Base belongs_to :user searchable do text :title, :boost => 3 text :budget text :description boolean :is_available, :using => :available? end def available? !self.user.suspended end end
Any ideas?
Thanks!
source share