我有模特:
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字段?
答案 0 :(得分:0)
我无法回答原因。
但是完全没有必要避免这种情况,因为默认情况下你的(My | Postgre)SQL(ite)服务器的内部优化应该删除它,并且它不应该对这个查询的时间花费产生任何影响。