当我这样做时:
[29] pry(main)> u=User.where("id in (?)",[1,2])
=> ActiveRecord::Relation
[31] pry(main)>
,而:
[33] pry(main)> u=User.find([2,3])
...
[34] pry(main)> u.class
=> Array
[35] pry(main)>
我知道这些都非常相似,但为什么找不到数组会返回一个ActiveRecord :: Relation。有一些深层原因吗?我原本以为使用id数组的find会返回一个ActiveRecord :: Relation。
THX
答案 0 :(得分:0)
实际上在rails中查找调用find_with_ids方法,如果你将一个数组作为参数传递给它,并且find_some的工作方式如下,则调用find_some: result = where(table [primary_key] .in(ids))。to_a 即将activerecord:关系对象转换为数组。因此结果提供了一个数组。
您可以查看他们的源代码