Edited at

Mysql2::Error: Column 'created_at' in order clause is ambiguousの対策

More than 3 years have passed since last update.

Railsのモデルで以下のように関連モデルをincludesしてタイトルのようなエラーがでたときの対策です。


book.rb


book = Book.includes(:author)
book = book.order("created_at DESC")


これだと以下のようなエラがでます。

Mysql2::Error: Column 'created_at' in order clause is ambiguous

これは、どのモデルのcreated_atか分からないよとおっしゃっているそうです。

なので、以下のようにテーブル名を明示すれば大丈夫です。


book.rb


book = Book.includes(:author)
book = book.order("books.created_at DESC")


以上ちょっとしたメモです。