class User < ActiveRecord::Base
def self.all_users_count
User.all
end
end
User.all_users_count
リターンは、例えば、
User.limit(5).all_users_count
今ではを返すレールコードにいくつかのルビーがあります5のため、ActiveRecord :: Relationコンテキストのため、クラスだから、User.all
代わりに、単純なall
(そのクエリは、常に他の例でlimit
またはwhere id
または他のものが含まれて表示さ.to_sql)
は、どのように私は、モデルのメソッド内のコンテキストに依存しないARクエリを作ることができますか? User.all
などのように?
ありがとうございました!
ps。または、おそらく私のコードにこのようなエラーや何かがあり、実際にはUser.all
はメソッド内にあり、コンテキストは常にこのモデルテーブルの正しい行数を返す必要があります
**はい、それは、thanx!**私は "contex 「t」と「scope」と他のものと私の状況について何かを見つけることができません。私は似たような方法があると思っていましたが、Googleのためにこの問題を定式化するのは難しいです。 Ps。はい、私は同意します、それは予想外の動作ですが、それは..少なくとも私の場合は – dmitryck
UPDです。 'unscoped'は単純なケースでうまくいきますが、クエリがより大きく、他の宝石のモデル(クロージャツリーのようなもの)に多くのメソッドが適用されているとき - サマリーSQLクエリにはまだいくつかの追加条件があります。 .. ok、非常にマッチしてくれてありがとう! – dmitryck
これは奇妙で紛らわしいものですが、作業するためのいくつかのレールプロジェクトがあるときは、これを必ず調査します。 – meta