Поведение области Weird Rails 3 - PullRequest
1 голос
/ 31 июля 2010

В приложении rails 3 я реализовал следующую область видимости:

scope :popular, lambda { |l = 5| order('views desc').limit(l) }

Однако кажется, что при попытке прямого подсчета записей он не применяет фильтры области действия.

Например:

Post.popular.size #=> 20

Проверяя журнал, он выполняет следующий запрос:

SQL (0.4ms)  SELECT COUNT(*) AS count_id FROM `posts` LIMIT 5

Теперь, если я выполню

Post.popular.all.size #=> 5

И правильнозапрос выполнен:

Post Load (1.5ms)  SELECT `posts`.* FROM `posts` ORDER BY views desc LIMIT 5

Кто-нибудь еще сталкивался с таким поведением?Если это так, есть идеи, если это ожидаемое поведение или я сталкиваюсь с ошибкой?

С наилучшими пожеланиями, DBA

...