所以,我有这个“高级”查询(真的不多),我想把它翻译成 Ruby Active Record 的语法。
SELECT microposts.*
FROM microposts
WHERE user_id IN
( SELECT r.followed_id as uid
FROM relationships r
WHERE follower_id = 1
UNION
SELECT u.id as uid
FROM users as u
WHERE id = 1
)
ORDER BY microposts.created_at DESC
想法是检索用户 1 的所有微博,用户 1 以 desc 创建顺序跟随用户,但我真的不知道如何使用 Active Record 的语法轻松翻译。
任何想法 ?
PS:这里问的是一些rails上下文:
我有 3 个模型:Microposts
, Users
, Relationships
.
- 关系是处理所有用户关系(关注者/关注者)的连接表。
- 用户通过关系有很多followed_users/followers。
- 用户有许多微箍,而微箍有一个用户。
谢谢。