2012-03-04 4 views
8

...このように、この対比較オブジェクトまたは単にIDが

current_user.id == @user.id 

をオブジェクトを比較におけるパフォーマンスの向上はあります...

current_user == @user 

はまた1を行うためのがベストプラクティスの理由ですパフォーマンスに関係なく他のものよりも?

答えて

11

ありますが、はほとんどありません。です。基本的にid Sを比較しますが、あなただけのidの彼らはでも同じかもしれないを比べた場合、オブジェクトは、たとえば、あなたはおそらく以来たい同じタイプのものであることを保証

def ==(comparison_object) 
    super || 
    comparison_object.instance_of?(self.class) && 
    id.present? && 
    comparison_object.id == id 
end 

ActiveRecord::Base#==がこのん1つはUserで、もう1つはProductです。

結論として、モデルオブジェクト自体を比較することが最善です。

関連する問題