条件を指定せずに、 ActiveRecord::Relation が欲しいとき
条件なし、つまりすべての ActiveRecord インスタンスを得るリレーションを得たい場合に Rails3 自体は scoped を使っていましたが Rails4 ではそのかわりに all を使うことになります。
Foo.scoped # for rails3
Foo.all # for rails4
なお、 Rails4 では scoped がなくなったために、 Rails3 から Rails4 へバージョン更新する場合はひたすら scoped を all に変えることになります。
しかし、 Rails3 の環境で scoped を all に変えるとちょっと意味が変わってくる(返り値が ActiveRecord::Relation or Array)ので、移行途中のフェーズで全置換するのはちょっとマズイことになります。
Rails のバージョンで分岐させて両対応
(Rails::VERSION::MAJOR <= 3 ? Foo.scoped : Foo.all)
Rails のバージョンによって scoped を使うのか all を使うのかを切り替えています。
移行し終わったら、該当箇所を全て Foo.all に変えれば良いです。
もっと短く両対応
Foo.where(nil)
where に対して nil あるいは false を与えれば同じことになります。 where(nil) は Rails3 でも Rails4 でも先の意図通りの挙動をするので便利です。
なお
Foo.where("1 = 1")
と、常に真となる条件を与えても効果としては同じですが、
この場合はもちろん実際に DB に投げる SQL にも "1 = 1" がのっかってくることになります。