私はモデルを持っています.2つのデータセットを取得し、それらを1つにマージする予定のAdとしましょう。これは可能ですか:
ads = Ad.where(etc).limit(5)
if ads.length < 5
merge = Ad.where(etc).limit(remainder)
// merge both here
私はモデルを持っています.2つのデータセットを取得し、それらを1つにマージする予定のAdとしましょう。これは可能ですか:
ads = Ad.where(etc).limit(5)
if ads.length < 5
merge = Ad.where(etc).limit(remainder)
// merge both here
ActiveRecord を使用すると、連鎖を行うことができます。これを試してみてください。1 つのクエリのみが実行されます。
ads = Ad.where(etc).limit(5)
ads = ads.where(etc).limit(remainder)
しかし、あなたの場合、length
メソッドを呼び出して、2 つのクエリを実行します。ただし、チェーンは引き続き実行できます。ユーザーcount
メソッドはメソッドよりも優れています。データベースに送信するlength
ためです(高速)。条件に基づいてすべてのレコードをロードし、配列のカウントを行います (低速)。count
COUNT(*)
length
where
ads = Ad.where(etc).limit(5)
if ads.count < 5
ads = ads.where(etc).limit(remainder)
end