在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能够熟悉那些相同的连接,只需应用连接一次,但事实并非如此。我可以使用表别名,但是我仍然有两个完全相同的连接。
我确定必须有适当的解决方案吗?
答案 0 :(得分:1)
原来这是Rails 2.3.4中的一个错误:
在我的实际代码中,我在JOIN表达式中对ON关键字使用了不同的字符大小写,并且Rails没有足够的智能来合并它。显然,作用域对JOIN字符串进行区分大小写的比较。
我打开了一个错误报告:link text