这可能是一个愚蠢的问题。它肯定是迂腐的。
MyModel.where(...)
和MyModel.where(...).all
之间有什么区别吗?
这个问题是由我几分钟前发布的弃用警告提示的:
DEPRECATION WARNING: This dynamic method is deprecated.
Please use e.g. Post.where(...).all instead.
all
真的有必要吗?
答案 0 :(得分:2)
不,它们是等价的,至少在你可能想到的方式中是这样的:
Model.where(id: nil) === Model.where(id: nil).all # returns true
Model.where(id: nil) == Model.where(id: nil).all # returns true
Model.where(id: nil).eql? Model.where(id: nil).all # returns false
Model.where(id: nil).equal? Model.where(id: nil).all # returns false
a
的方框,b
是否会被放入其中?.eql?
和.equal?
为false,确认这些是两个不同的对象。它们的哈希值不相同且对象标识不相同