cas*_*yin 8 ruby ruby-on-rails
比较这样的对象是否有性能提升......
current_user.id == @user.id
Run Code Online (Sandbox Code Playgroud)
与此相比......
current_user == @user
Run Code Online (Sandbox Code Playgroud)
无论性能如何,还有最佳实践理由做一个而不是另一个吗?
And*_*all 11
是的,但几乎没有.ActiveRecord::Base#==做这个:
def ==(comparison_object)
super ||
comparison_object.instance_of?(self.class) &&
id.present? &&
comparison_object.id == id
end
Run Code Online (Sandbox Code Playgroud)
这本质上是比较ids,但确保对象属于同一类型,这可能是你想要的,例如,如果你只比较id它们,即使一个是另一个,它们也可能是相同User的Product.
总之,比较模型对象本身是最好的.
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |