我得到“未定义的方法`abstract_class?” for Object:Class“for count_by_sql

时间:2010-08-24 11:39:08

标签: ruby-on-rails

我收到错误: undefined method 'abstract_class?' for Object:Class

在count_by_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,以前它曾经工作过。

1 个答案:

答案 0 :(得分:5)

ActiveRecord的count_by_sql调用一些更深的ActiveRecord :: Base魔术,假设你是一个真正的ActiveRecord(即从AR继承的东西,而不是AR本身),因此试图调用一个名为abstract_class的内部方法?通常会返回班级名称(例如订单或产品)。

你可以通过使用一个实际的AR对象来解决这个问题(无关紧要),例如:

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