Ruby on rails I';“我得到了”;未定义的方法'abstract_class?';对于对象:“类”;用于按sql计数

Ruby on rails I';“我得到了”;未定义的方法'abstract_class?';对于对象:“类”;用于按sql计数,ruby-on-rails,Ruby On Rails,我得到了一个错误: 对象类的未定义方法“抽象类” 按sql进行计数,如下所示: my_count = ActiveRecord::Base.count_by_sql(["SELECT widgets FROM wodgets WHERE colour = ? LIMIT 1", my_favourite_colour]) 我刚刚从Rails 2.2.2升级到2.3.4,它以前也能工作。ActiveRecord的count\u by\u sql调用了一些更深层次的ActiveRecord::Ba

我得到了一个错误:
对象类的未定义方法“抽象类”

按sql进行计数,如下所示:

my_count = ActiveRecord::Base.count_by_sql(["SELECT widgets FROM wodgets WHERE colour = ? LIMIT 1", my_favourite_colour])

我刚刚从Rails 2.2.2升级到2.3.4,它以前也能工作。

ActiveRecord的count\u by\u sql调用了一些更深层次的ActiveRecord::Base magic,它假设您是一个实际的ActiveRecord(即从AR继承的东西,而不是AR本身),因此尝试调用一个名为abstract\u class的内部方法?这通常会返回类名(例如订单或产品)

您可以通过使用实际的AR对象(不管是哪一个)来解决此问题,例如:

my_count = MyWidget.count_by_sql(["SELECT widgets FROM wodgets WHERE colour = ? LIMIT 1", my_favourite_colour])