Thanks Dave. 

Yes, ORing over values for the same attribute is not a problem, that can be 
done with something like name=['Doris', 'Bob'] or similar, which would 
generate an SQL IN statement (where name in ('Bob', 'Doris')). The problem 
is when ORing two different attributes or arbitrarily mixing ANDs and ORs.

Anyhow, I ran in to ransack 
<https://github.com/activerecord-hackery/ransack>, which seems to be a 
promising starting point for this kind of functionality, if not supported 
out of the box. Haven't had time to try it out yet. 

 - fred

On Monday, March 30, 2015 at 11:15:08 PM UTC+3, Dave Aronson wrote:
>
> On Mon, Mar 30, 2015 at 3:55 PM, Fredrik Boström <[email protected] 
> <javascript:>> wrote: 
>
> > Maybe I expressed myself a bit unclearly. I'm not trying to reinvent SQL 
> or 
> > create a new database implementation, that's insane! 
>
> Okay.  Maybe I jumped the gun a bit too; I've seen lots of zealous 
> people, at the stage where they "know enough to be dangerous", head 
> down such a path.  :-) 
>
> > What I'm after is a way to 
> > do more complex filtering of the result set using query parameters than 
> what 
> > ActiveRecord now supports. 
>
> Perhaps you could take query params that included embedded ANDs and 
> ORs and some parentheses, and pass them off to some gem that can 
> handle that on each field.  So, you would wind up with a URL like: 
>
> GET /api/users?name=Doris OR Fred&location=Stockholm&hobbies=horseback 
> OR swimming 
>
> Then, inside your controller (or better yet, User.search method or 
> UserSearch.call or whatever), have it take whatever searchable params 
> were given and hand them off to, say, Solr or ThinkingSphinx or 
> whatever. 
>
> Or-ing THOSE together, so as to look for anyone who's in Stockholm OR 
> is interested in horseback or swimming, is another story.  I think you 
> can do that with Solr (been a while since I've used it) but of course 
> the handling and syntax would be different. 
>
> In summary, check out the assorted search gems, especially full-text 
> search, see what they can do for you, and base your syntax on what can 
> be easily broken up into the kinds of pieces your preferred search gem 
> expects. 
>
> -Dave 
>
> -- 
> Dave Aronson, consulting software developer of Codosaur.us, 
> PullRequestRoulette.com, Blog.Codosaur.us, and Dare2XL.com. 
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/824603c9-7c2b-4ee4-b3b2-e6c6b38d643c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to