Я получаю "неопределенный метод" abstract_class? " для объекта: класс "для count_by_sql - PullRequest
4 голосов
/ 24 августа 2010

Я получаю ошибку: 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 Ответ

5 голосов
/ 24 августа 2010

ActiveRecord count_by_sql вызывает более глубокую магию ActiveRecord :: Base, которая предполагает, что вы являетесь действительным ActiveRecord (то есть чем-то, что наследуется от AR, а не от самого AR) и, таким образом, пытается вызвать внутренний метод с именем abstract_class? который обычно возвращает имя класса (например, Order или Product).

Вы можете обойти это, используя реальный объект AR (неважно, какой), например:

my_count = MyWidget.count_by_sql(["SELECT widgets FROM wodgets WHERE colour = ? LIMIT 1", my_favourite_colour])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...