Fixed: https://github.com/Hobo/hobo/issues/120
El sábado, 8 de febrero de 2014 14:14:00 UTC+1, Tim Griffin escribió:
>
> Hi all;
>
> Bit of an urgent plea here to help me understand how to adapt search
> parameters in a Hobo Index function to satisfy PostgreSQL's strong typing.
>
> I have a Plan class:
>
> plan_no :decimal, :default => 0, :precision => 12, :scale => 3 #
> to accommodate 123456789.999
> clsr :integer
>
> In my *index* method, I include these in search scopes:
>
> scopes = {
>
> :search => [ params[:search], :plan_no, :clsr ]
> }
>
> Then, I search:
>
> @plans = Plan.regional(session[:region_id].to_i).apply_scopes(scopes)
>
>
> But, Postgres is very unhappy about comparing the text I type in the
> Search box with the decimal and integer fields *plan_no* and *clsr:*
>
> HINT: No operator matches the given name and argument type(s). You might
> need to add explicit type casts.
> : SELECT "plans".* FROM "plans" WHERE (plans.region_id = 1) AND
> (((plans.plan_no ILIKE '%4430%') OR (plans.clsr ILIKE '%4430%'))) DESC
> LIMIT 40 OFFSET 0
> *PG::UndefinedFunction: ERROR: operator does not exist: numeric ~~*
> unknown*
> LINE 1: ... WHERE (plans.region_id = 1) AND (((plans.plan_no ILIKE '%44...
>
> Can anyone enlighten me on how to work those suggested casts into the
> search process without resorting to preparing my own SQL statement? This
> seems doubly difficult given that both fields are of different types, and I
> never know whether someone is searching by plan_no or by clsr!
>
> Many thanks,
> Tim
>
>
--
You received this message because you are subscribed to the Google Groups "Hobo
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/hobousers.
For more options, visit https://groups.google.com/d/optout.