I have struggled too much for finding out the appropriate solution but still looking for the best one. Below you can find out an alternative to make that work for at least one column that belongs to other model.
Product Model :
class Product < ActiveRecord::Base searchable do integer :id # we are indexing mrp_per_unit column of pricings table float :pricing do pricing.mrp_per_unit end # I was trying to make multiple range filter work with join but not succeed so I have raised an issue on github sunspot repo https://github.com/sunspot/sunspot/issues/770 # join(:mrp_per_unit, :target => Pricing, :type => :float, :join => { :from => :product_id, :to => :id }) end end
Pricing Model :
class Pricing < ActiveRecord::Base belongs_to :product searchable do integer :product_id float :mrp_per_unit end endSearch Controller :
@search = Product.search do any_of do # You can write more or can make it dynamic as per your requirement # It is only for example that will help you in understanding that # In that way you will see the whole data filtered as per the specified ranges with(:pricing, 1..100) with(:pricing, 101..200) with(:pricing, 201..300) with(:pricing, 301..400) with(:pricing, 401..500) end end @search.resultsYou can find out the case in brief here at my github issue
https://github.com/sunspot/sunspot/issues/770
No comments:
Post a Comment