Ruby on rails Rails模型作用域返回不正确的数据

Ruby on rails Rails模型作用域返回不正确的数据,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个附加了作用域的用户模型。我们把它叫做foo class User < ActiveRecord::Base scope :foo, ->(thing) { find_by(something: thing) } end class用户(thing){find_by(something:thing)} 结束 让我们假设thing='bar' 我在数据库中有一条记录,其中something=baz所以当我这样做时 User.foo('bar') 我应该没有结果 但是,这将

我有一个附加了作用域的用户模型。我们把它叫做foo

class User < ActiveRecord::Base
  scope :foo, ->(thing) { find_by(something: thing) }
end
class用户(thing){find_by(something:thing)}
结束
让我们假设
thing='bar'

我在数据库中有一条记录,其中
something=baz
所以当我这样做时
User.foo('bar')
我应该没有结果

但是,这将返回一个
ActiveRecord::Relation
,其中包含数据库中不匹配的结果


如您所见,我正在使用
find_by
,因此我也不确定为什么要恢复关系。

您误用了作用域。它们需要返回关系,以便将其他作用域链接到它们上

很可能您的
find_by
实际返回
nil
,在这种情况下,ActiveRecord忽略
nil
并返回
all
,这样链接就不会中断