Rails与重复列名称的关系

时间:2013-12-28 18:03:55

标签: ruby-on-rails ruby

我有一组典型的模型,包含父/子/孙/格栅层次结构。我创建了关系:

 @summary = Function.joins(:benchmrks=>{:indicators=>:results})
            .select("functions.id , benchmrks.id , indicators.id , avg(results.score) ")
            .group("results.indicator_id")

我无法访问结果集中的列,所以我这样做了:

 @summary.each do |s|
     s.attributes
 end

我看到定义了两个列,它们都可以访问:

{"id"=>1, "avg(results.score)"=>3.0}

如果我更改了.select()并手动将列重命名为:

 .select("functions.id as f_id, benchmrks.id as b_id, indicators.id as i_id , avg(results.score) as avg")

我看到4列,它们都可以访问:

 {"f_id"=>1, "b_id"=>1, "i_id"=>1, "avg"=>3.0}

因此,列名称(functions.id,benchmrks.id和indicators_id)的点SQL语法似乎被rails压缩为单个id。这对我来说是意想不到的行为。

我应该以不同的方式做到这一点吗?

0 个答案:

没有答案