我有一个模型,假设是 Ad,我计划从中获取 2 个数据集,然后将它们合并为 1 个。这可能吗:
ads = Ad.where(etc).limit(5)
if ads.length < 5
merge = Ad.where(etc).limit(remainder)
// merge both here
我有一个模型,假设是 Ad,我计划从中获取 2 个数据集,然后将它们合并为 1 个。这可能吗:
ads = Ad.where(etc).limit(5)
if ads.length < 5
merge = Ad.where(etc).limit(remainder)
// merge both here
ActiveRecord 允许您进行链接。试试这个,它只会执行一个查询。
ads = Ad.where(etc).limit(5)
ads = ads.where(etc).limit(remainder)
但是在您的情况下,您调用该length
方法,因此它将执行两个查询。但是,您仍然可以进行链接。用户count
方法比length
方法更好,因为count
它将发送COUNT(*)
到您的数据库(更快)。length
将根据where
条件加载所有记录并对数组进行计数(较慢)。
ads = Ad.where(etc).limit(5)
if ads.count < 5
ads = ads.where(etc).limit(remainder)
end