シナリオ 私は、ユーザーテーブルを持つ投稿でいっぱいのテーブルを持っています。 すべての投稿をフェッチしてユーザーごとにグループ化したいと考えていますが、に1人あたり10人という制限を設定します。アクティブレコードLIMIT within GROUP_BY
class Post < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :posts
end
# I thought this might work but it just grabs the first 10 posts and groups them
Post.find(:all, :limit=>10).group_by(&:user)
カスタムSQLを作成する必要がありますか、またはActive Recordでこれを行うことはできますか?
に変換されます。要求するごとに*ユーザーごとではなく、すべてのユーザーに対してフェッチを10に制限します。特定のSQL文が必要な場合は、使用しているRDMBSやMySQLなどでタグ付けすることができます。 – tadman
ありがとう、私はポストにsqlite3タグを追加しました – alenm
私はこれがDB固有ではないと思います。 ActiveRecordはこれを単独で処理できます。私はこれを反映するために私の答えを更新しました。 –