[Rails3] テーブル結合時にdefault_scopeでColumn ‘hoge’ in order clause is ambiguousエラー

includeやjoinでテーブルを結合した際にModelでscopeを適用している場合に、hogeカラムが複数テーブルにあると
Column ‘hoge’ in order clause is ambiguous
のようなエラーが出ることがあります。hogeが曖昧だと言われています。

Modelで

のように宣言していると、生成されるSQLが

となってしまい、どのテーブルのhogeに対して並べ替えるか分からないということのようです。

テーブルを指定するには

とすると、生成されるSQLが

となり、曖昧さがなくなります。

#{table_name}は実際のテーブル名には置き換える必要はありません。
実際のテーブル名に置き換えるとエラーが出ます。しばらく嵌りました(- -;)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*