Serialize array finder


#1

Hello,

Not sure if this is even possible/practical but I’d like to serialize an
array to a string field like this and then be able to match against it.

User.find(:all, :conditions => [“interests in
(?)”,current_user.interests)

Am I better of not denormalizing? How would this be done with ordinary
A/R relationships because I’m not looking for an exact match, I’m
looking for any interests that the users have in common (more like a
ranking)

GP


#2

Grayson P. wrote:

User.find(:all, :conditions => [“interests in
(?)”,current_user.interests)

Here’s a wild guess. I hope someone else corrects it if I have lead you
astray!

User.find(:all, :include => :interests,
:conditions => [“interests.id IN (?)”,current_user.interests]
:order => ‘COUNT(interests.id) DESC’)

(At work we have taken to putting all raw SQL commands in ALL CAPS…)


#3

Phlip wrote:

Grayson P. wrote:

User.find(:all, :conditions => [“interests in
(?)”,current_user.interests)

Here’s a wild guess. I hope someone else corrects it if I have lead you astray!

such as…

User.find(:all, :include => :interests,
:conditions => [ “interests.id IN (?)”,
current_user.interests.map(&:id) ]
:order => ‘COUNT(interests.id) DESC’)

and use inspect_sql to see the query it generates!