【发布时间】:2012-01-15 21:34:20
【问题描述】:
我正在尝试在进行连接后选择多个列。如果不在查询中的引号之间写 SQL,我找不到使用 ActiveRecord 的方法(我想避免的事情)
探索 Arel,我发现我可以使用“项目”选择多个列,但我不太确定是否应该直接使用 Arel,或者是否有办法通过 AR 实现相同的目的。
这是 Arel 中的代码:
l = Location.arel_table
r = Region.arel_table
postcode_name_with_region_code = l.where(l[:id].eq(location_id)).join(r).on(l[:region_id].eq(r[:id])).project(l[:postcode_name], r[:code])
运行此查询后,我想返回以下内容: (伪代码)
"#{:postcode_name}, #{:code}"
- 有没有办法使用 AR 实现相同的查询?
- 如果我坚持使用 Arel,如何从上述查询返回的 SelectManager 类中获取值。
提前致谢,
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-3.1 arel