serialize array finder

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

Grayson Piercee 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...)

Phlip wrote:

Grayson Piercee 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!