次のような単一テーブル継承モデルがあります。
class Application < ActiveRecord::Base
has_many :snapshots, :dependent => :destroy
has_many :foos, :dependent => :destroy
end
class Snapshot < ActiveRecord::Base
end
class Foo < Snapshot
end
スナップショット/Fooクラスには、変数名'when'の日付があります。has_many(foos)関係に:order =>'when'(または:when)を追加すると、データベースはオブジェクトにアクセスするとエラーをスローします。例:application.foos.each..。
生成されたクエリ:
SELECT "snapshots".* FROM "snapshots" WHERE "snapshots"."type" IN ('Foo') AND "snapshots"."application_id" = 25 ORDER BY when
*「when」付近のエラー:構文エラー
クエリを手動で編集して、rails dbconsoleに入力すると、次のようになります。
SELECT "snapshots".* FROM "snapshots" WHERE "snapshots"."type" IN ('Foo') AND "snapshots"."application_id" = 25 ORDER BY "snapshots"."when"
クエリは機能します。
これは既知のRails3のバグですか、それとも特別な構文がありますか?回避策はありますか?