クラス AI には 2 つのスコープ 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がこれらの同一の結合について賢く、結合を一度だけ適用することを期待していましたが、そうではありません。テーブル エイリアスを使用することもできますが、正当な理由もなく 2 つの同一の結合が残ってしまいます。
これには適切な解決策が必要だと思いますか?