【发布时间】:2012-08-06 22:52:15
【问题描述】:
所以,我有这个“高级”查询(真的不多),我想把它翻译成 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。
- Relationships 是处理所有用户关系(关注者/关注者)的连接表。
- 用户通过关系拥有许多followed_users/followers。
- 用户有多个微环,微环有一个用户。
谢谢。
【问题讨论】:
-
感谢您的可读性修复,ypercube :)
标签: sql ruby-on-rails ruby activerecord