Rails查找没有重复的查询

时间:2009-05-30 05:36:34

标签: sql ruby-on-rails

如何更改以下代码,以便我只包含具有不同sender_idmessage_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 个答案:

答案 0 :(得分:1)

@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") 

(我更喜欢自己做查询......叫我疯了)