@messages = RolesMessages.find(:all, :select => 'DISTINCT sender_id, message_id', :conditions => ["sender_id IN (?) ", @roles.map(&:id)], :order => 'created_at DESC')
Редактировать: теперь, когда я думаю об этом, группировка, вероятно, является лучшим вариантом.
:group => 'sender_id, message_id'
, вероятно, удовлетворит ваши потребности лучше
Вы также можете сделать что-то вроде:
RolesMessages.find_by_sql("query goes here")
(я предпочитаю сделать запрос сам ... называть меня сумасшедшим)