Ruby on rails 具有单表继承的关联Rails模型的按错误排序

Ruby on rails 具有单表继承的关联Rails模型的按错误排序,ruby-on-rails,ruby,activerecord,ruby-on-rails-3.2,Ruby On Rails,Ruby,Activerecord,Ruby On Rails 3.2,我有一个单表继承模型,如下所示: class Application < ActiveRecord::Base has_many :snapshots, :dependent => :destroy has_many :foos, :dependent => :destroy end class Snapshot < ActiveRecord::Base end class Foo < Snapshot end *“when”附近出错:语法错误 如果手

我有一个单表继承模型,如下所示:

class Application < ActiveRecord::Base
  has_many :snapshots, :dependent => :destroy
  has_many :foos, :dependent => :destroy
end

class Snapshot < ActiveRecord::Base
end

class Foo < Snapshot
end
*“when”附近出错:语法错误

如果手动编辑查询并将其输入rails数据库控制台:

SELECT "snapshots".* FROM "snapshots"  WHERE "snapshots"."type" IN ('Foo') AND "snapshots"."application_id" = 25 ORDER BY "snapshots"."when"
查询是有效的

这是一个已知的Rails3错误还是有一些特殊的语法?有什么解决办法吗?

按时间来尝试

  query.order(:when)
试试这个

SELECT *FROM snapshots where type IN ('Foo') AND application_id = 25 ORDER BY when

在尝试了许多方法后,这一方法奏效了:

@application.foos.order("\"snapshots\".\"when\"")
它使用适当的“快照”生成了查询

@application.foos.order("\"snapshots\".\"when\"")