使用distinct / uniq / select和order by查找具有唯一user_id的记录

时间:2014-03-16 17:48:49

标签: ruby-on-rails distinct uniq

<% Activity.where("CAST(code as TEXT) not like ? and CAST(code as TEXT) != ? and CAST(code as TEXT) != ? and user_id IS NOT NULL and user_2_id IS NOT NULL", '%0%', '13', '14').limit(4).order("created_at DESC").each do |activity| %>

我会跟踪我的用户&#39;有特殊表的活动。要在首页上显示这些活动,我想选择来自四个不同人的最后四项活动(具有特定代码)。

我尝试了select |的不同变体不同的uniq和其他解决方案,但只接收崩溃或错误(例如&#34;不同需要在条款#34中排序;但没有解释如何在rails中正确执行此操作)。在尝试了三个小时之后,我即将放弃。非常欢迎!

编辑1:架构

create_table "activities", force: true do |t|
t.integer  "user_id"
t.integer  "recruiter_id"
t.integer  "job_id"
t.integer  "code"
t.integer  "value"
t.integer  "user_2_id"
t.datetime "created_at"
t.datetime "updated_at"
end

模型很简单:

 belongs_to :user
 belongs_to :user_2, class_name: "User"
 belongs_to :recruiter

模型中的其他信息只定义了活动的编号方式,但这里没有相关的信息。

我有兴趣从四个不同的用户(不是同一个用户一次又一次)获得1-10的代码之间的最后四项活动。

编辑2: 代码只是一个数字。像1,2,3这样的代码是用户采取的动作,任何以0结尾的代码都是删除某些内容(不应该显示)。所以1是创建一个帐户,10是删除帐户。

0 个答案:

没有答案