named_scope width has_many Ассоциации и количество - PullRequest
0 голосов
/ 08 сентября 2010

У меня есть модели:

class User < ActiveRecord::Base
  has_many :user_skills
end

class UserSkill < ActiveRecord::Base
  belongs_to :user  

  named_scope :rated, :conditions => "count_raters > 0"  
end

Я хочу получить количество оцененных навыков.

current_user.user_skills.rated.cont

Работает нормально, но сгенерированный SQL очень странный.

SELECT count(*) AS count_all FROM `user_skills` WHERE (((count_raters > 0) AND (`user_skills`.user_id = 988988934)) AND (`user_skills`.user_id = 988988934)) 

Почему он проходит дважды user_id?Как избежать двойной передачи поля user_id?

1 Ответ

0 голосов
/ 08 сентября 2010

Я не могу ответить на вопрос почему.

Но совершенно не нужно этого избегать, потому что внутренняя оптимизация вашего (My | Postgre) SQL (ite) сервера должна по умолчанию удалить этоне должно влиять на время, затрачиваемое на этот запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...