活动记录合并同一模型的数据集



我有一个模型,比如说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

相关内容

最新更新