I was going to joke that you may as well add support for SPARQL, since for
some reason it comes to mind when I think of tuples, and then found
something that already supports SPARQL with ActiveModel:
https://github.com/Swirrl/tripod
Does this work?
Phone.where('(ddd, number) in ((?),(?))', 31,32310512, 31,96438112)
That looks cleaner to me. If you need to send in an array:
Phone.where('(ddd, number) in ((?),(?))', *[31,32310512, 31,96438112])
or your example:
Phone.where('(ddd, number) in ((?),(?))', *
[[31,32310512],[31,96438112]].flatten)
and you could always construct the "(?),(?)" by counting the flattened
array to see how many ?'s you need.
On Tuesday, May 21, 2013 12:12:56 PM UTC-4, Rafael Almeida wrote:
>
> I would very much be able to do this query with ActiveRecord:
>
> SELECT `phones`.* FROM `phones` WHERE (ddd, number) in
> ((31,32310512),(31,96438112))
>
> Unfortunately, ActiveRecord gives me no way to do so with a prepared
> statement. The intuitive way to do it would be:
>
> Phone.where('(ddd, number) in (?)', [[31,32310512],[31,96438112]])
>
> that does not work, as it yields:
>
> SELECT `phones`.* FROM `phones` WHERE ((ddd, number) in ('---\n- 31\n-
> 32310512\n','---\n- 31\n- 96438112\n'))
>
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Core" 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/rubyonrails-core?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.