named_scope width has_many关联和计数

时间:2010-09-08 08:34:41

标签: ruby-on-rails activerecord associations

我有模特:

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 :(得分:0)

我无法回答原因。

但是完全没有必要避免这种情况,因为默认情况下你的(My | Postgre)SQL(ite)服务器的内部优化应该删除它,并且它不应该对这个查询的时间花费产生任何影响。