Rails находит запрос без дубликатов - PullRequest
0 голосов
/ 30 мая 2009

Как изменить следующий бит кода, чтобы у меня были только записи с различными комбинациями sender_id и message_id:

@roles = Role.find_all_by_simulation_id(session[:sim_id])
@messages = RolesMessages.find(:all, :conditions => ["sender_id IN (?) ", @roles.map(&:id)], :order => 'created_at DESC')

1 Ответ

1 голос
/ 30 мая 2009
@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") 

(я предпочитаю сделать запрос сам ... называть меня сумасшедшим)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...