【发布时间】:2012-03-28 15:16:47
【问题描述】:
假设我有 4 个模型,它们通过以下方式相关:
- 计划具有项目的外键
- 计划具有用户的外键
- 项目对客户有外键
在我的 Schedule#index 视图中,我想要最优化的 SQL,以便我可以显示与 Schedule 相关的项目、客户和用户的链接。所以,我不应该拉出项目、客户和用户的所有列;只有他们的 ID 和姓名。
如果我要手动编写 SQL,它可能如下所示:
select
s.id,
s.schedule_name,
s.schedule_type,
s.project_id,
p.name project_name,
p.client_id client_id,
c.name client_name,
s.user_id,
u.login user_login,
s.created_at,
s.updated_at,
s.data_count
from
Users u inner join
Clients c inner join
Schedules s inner join
Projects p
on p.id = s.project_id
on c.id = p.client_id
on u.id = s.user_id
order by
s.created_at desc
我的问题是:让 Rails 3 生成 SQL 的 ActiveRecord 代码是什么样的? 例如,类似:
@schedules = Schedule. # ?
我已经在模型中设置了关联(即 has_many / belongs_to)。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord