当我们检查一个活动记录结果是否为空时,将是什么 有更多表现的方式。
pc_count = Property.select("id").where('property_category_id = ?', 5).limit(1)
if pc_count.blank?
#
end
if pc_count[0]
#
end
我尝试过两种方式 pc_count.blank?或 pc_count [0] ,因为我听说空白会收取额外的查询,但当我尝试了控制台我看不到任何额外的电话
答案 0 :(得分:1)
不,你的两个版本都不会产生另一个查询。
这取决于您使用pc_count
做了什么:
1。)您稍后在某个地方使用id
,然后使用您的任何一种方法(我更喜欢.blank?
)
2。)你只需要这个检查。然后我会做
Property.select("id").where('property_category_id = ?', 5).limit(1).count
因为没有创建模型而您只能测试count == 0
答案 1 :(得分:1)
尝试存在
就像。
Person.exists?(5)
Person.exists?('5')
Person.exists?(:name => "David")
Person.exists?(['name LIKE ?', "%#{query}%"])
Person.exists?
参考:http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-exists-3F