Rails:链接范围时可以合并连接吗?

时间:2009-10-01 09:25:01

标签: mysql ruby-on-rails join named-scope

在A类中,我有两个范围,s1和s2,它们都使用完全相同的连接列连接到表T上:

named_scope :s1 :joins => "JOIN T on T.id = A.t_id", ...some conditions
named_scope :s2 :joins => "JOIN T on T.id = A.t_id", ...some other conditions

现在,这样做失败了:

A.s1.s2.all

错误:

  

ActiveRecord :: StatementInvalid:Mysql :: Error:不唯一的表/别名:'T'

我希望Rails能够熟悉那些相同的连接,只需应用连接一次,但事实并非如此。我可以使用表别名,但是我仍然有两个完全相同的连接。

我确定必须有适当的解决方案吗?

1 个答案:

答案 0 :(得分:1)

原来这是Rails 2.3.4中的一个错误:

在我的实际代码中,我在JOIN表达式中对ON关键字使用了不同的字符大小写,并且Rails没有足够的智能来合并它。显然,作用域对JOIN字符串进行区分大小写的比较。

我打开了一个错误报告:link text