次の条件を取得するために1つのクエリを作成する方法があるかどうか疑問に思っています:
1)scope :scheduled_for, -> {where.not(:scheduled_for => nil)}
それから
2)scope :sort_by_position, -> {order('position')}
期待される結果は、次のリストになります。
- ポスト 1 (9 月 23 日 && ポジション 1)
- ポスト 2 (9 月 24 日 && ポジション 2)
- ポスト 3 (ポジション: 3)
- ポスト 4 (ポジション: 4)
- 等...
注: 位置フィールドはランダムである可能性があります (つまり、投稿 1 の位置は 5 ですが、その Scheduled_for は空ではないため、より低い位置の投稿よりも優先されます。