SCENARIO У меня есть стол, полный сообщений с таблицей пользователей. Я хочу, чтобы иметь возможность загружать все сообщения и группировать их пользователями, но я хочу, чтобы установил предел, равный 10 на пользователя.Активная запись LIMIT в пределах 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 Active Record или делать это?
Это ограничивает выборку до 10 для всех пользователей, а не * для каждого пользователя * по мере того, как вы запрашиваете. Возможно, вы захотите пометить это с помощью MySQL или любого другого RDMBS, который вы используете, если для этого требуется конкретный оператор SQL. – tadman
Хорошо спасибо Я добавил тег sqlite3 к сообщению – alenm
Я не думаю, что это специфичный для БД. ActiveRecord может справиться с этим сам по себе. Я обновил свой ответ, чтобы отразить это. –