2016-12-20 5 views
-1

アクティブなレコードの結果が空であるかどうかをチェックすると、より多くのパフォーマンスを持つ
の方法があります。activerecordによる結果確認

pc_count = Property.select("id").where('property_category_id = ?', 5).limit(1) 

if pc_count.blank? 
    # 
end 

if pc_count[0] 
    # 
end 

2つの方法で私はこれを試しましたpc_count.blank?またはpc_count [0]、私は空白は余分なクエリを取ることを聞いたので、私は、コンソールで、私は余分な呼び出し

答えて

1

いいえ、両方のあなたのバージョンでは、別のクエリを生成しないことを見ることができなかったことをしようとしたとき。

それはあなたがpc_countで何をしているかによって異なります。

1)あなたはidがどこか後に、当時)

2.(私は.blank?を好む)あなたのいずれかの方法を使用しますが、これだけが必要であることを利用していますこのチェックのために。そこに作成された何モデルもないでしょうし、あなただけのテストcount == 0

1

は次のようになります

が存在する試すことができますので、その後、私は

Property.select("id").where('property_category_id = ?', 5).limit(1).count 

を行うだろう。

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

関連する問題