【发布时间】:2011-11-23 15:10:33
【问题描述】:
我有一个简单的模型
class User
has_many :logs
class Logs
通过外键logs.user_id以通常的方式关联。我正在尝试使用 Arel 执行以下操作,根据 Arel 文档,它应该可以工作。
u_t = Arel::Table::new :users
l_t = Arel::Table::new :logs
counts = l_t.
group(l_t[:user_id]).
project(
l_t[:user_id].as("user_id"),
l_t[:user_id].count.as("count_all")
)
l_t.joins(counts).on(l_t[:id].eq(counts[:user_id]))
当我这样做时,我得到了错误
TypeError: Cannot visit Arel::SelectManager
但是Arel的作者explicitly suggests认为Arel可以做这种事情。
请不要写关于如何使用原始 sql、另一种类型的 Arel 查询等实现相同查询的回复。这是我感兴趣的模式,而不是该查询的具体结果。
【问题讨论】:
标签: ruby-on-rails-3.1 inner-join arel