Hi Matt
I would build :conditions and :with hashes using your logic before the search
call, adding the necessary fields and attributes, then use them in your search
call:
conditions = {}
with = {}
conditions[:game_genre] = params[:genre] if params[:genre].present?
with[:distributor_id] = params[:distributor] if params[:distributor].present?
# etc
DistributorGame.search :conditions => conditions,
:with => with,
:per_page => games_per_page
Cheers
--
Pat
On 20/11/2012, at 12:57 AM, Matt Bilbow wrote:
> This is what im trying to do (psuedo(ish) code)
>
> basically just applying filters to the search if params exist.
>
> I realise this is probably a dumb question.
>
> DistributerGame.search :conditions => {:game_genre => genre *** IF
> PARAMS[GENRE] EXISTS ***}, :with => {:distributer_id => distributer *** if
> PARAMS[DISTRIBUTER] EXISTS ***, :price_in_gbp =>
> gbp_price_low..gbp_price_high} *** if PARAMS[PRICE] EXISTS ***, :per_page
> => games_per_page
>
> Thanks,
> Matt
>
>
>
> On Monday, November 19, 2012 1:39:41 PM UTC, Matt Bilbow wrote:
> Thanks Pat, that's what I ended up doing :)
>
> I do however have a new problem.
>
> I'm passing multiple params from a faceted search back to my controller. Do
> you know of a way I can 'chain' these to filter my results?
>
> Thanks again,
>
> Matt
>
>
>
>
>
> On Saturday, November 17, 2012 8:04:46 PM UTC, Matt Bilbow wrote:
> Here's my set up.
>
> Game model
> title
> description
>
> Distributer
> title
> link
>
> DistributerGame associated model
> game_id
> distributer_id
> link
>
> I'm trying to add the define_index block to my DistributerGame model.
>
> define_index do
> join distributer_game.game
> # fields
> indexes game.title, :as => :game_title
>
> # attributes
> has game_id, :type => :integer, :as => :game_id
> has distributer_id, :type => :integer, :as => :distributer_id, :facet =>
> true
> end
>
> when i try to index i get the following error:
>
> Cannot automatically map attribute sphinx_internal_id in DistributerGame to an
> equivalent Sphinx type (integer, float, boolean, datetime, string as ordinal).
> You could try to explicitly convert the column's value in your define_index
> block:
> has "CAST(column AS INT)", :type => :integer, :as => :column
>
> I'm guessing this has somethingt o do with having no primary key? but have no
> idea how to move forwards. Any help would be REALLy appreciated.
>
> Thanks,
> Matt
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Thinking Sphinx" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/thinking-sphinx/-/GxFMh87k9OwJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/thinking-sphinx?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/thinking-sphinx?hl=en.