четверг, 1 сентября 2011 г.

Re: Вопрос по скоупам

Хм. Внимательнее надо быть. Извините.

2 сентября 2011 г. 0:18 пользователь Саша А <elequtree@gmail.com> написал:
> ree-1.8.7-2010.02 :001 > User.where('id < 10').count
>  => 3
>
> 2 сентября 2011 г. 0:11 пользователь Dmytro Shteflyuk
> <kpumuk@kpumuk.info> написал:
>> Зачем? LIMIT не влияет на COUNT, потому что при count возвращается только
>> одна запись.
>>
>> --
>> Best regards, Dmytro Shteflyuk
>> http://kpumuk.info/, twitter: http://twitter.com/kpumuk
>>
>> On Thursday, 1 September, 2011 at 1:07 PM, Oleksiy Kovyrin wrote:
>>
>> что-нить типа такого?
>>
>> class ActiveRecord::Relation
>> def my_count
>> limit(nil).count
>> end
>> end
>>
>> После этого
>>
>> x = Post.where('id < 100').limit(10) #=> [ up to 10 posts ]
>> x.my_count #=> 0..99
>>
>> 2011/9/1 Vladimir <egotraumatic@gmail.com>:
>>
>> Доброго времени суток ув. сообщество! У меня к вам вопрос:
>>
>> Возможно ли как-то в скоуп засунуть помимо кода выборки, код посчета
>> записей?
>>
>> Post.where('id < 100').my_scope(...) #=> [...]
>>
>> Post.my_count #=> 99
>>
>> Метод my_count - это просто метод аксессор для определенной переменной
>> класса, которая хранит количество записей.
>>
>> my_count должен возвращать не количество записей возвращаемых
>> последним методом в цепочке, а предыдущего, то есть where, в итоге,
>> если в my_scope находится, например limit(10), а условию where('id <
>> 100') соответствуют 99 записей, то my_count должен вернуть 99, а не
>> 10.
>>
>> Спасибо за помощь!
>>
>> --
>> --
>> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
>> "RubyOnRails to russian" на группах Google.
>> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>>
>>  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
>> ror2ru@googlegroups.com
>>  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
>> ror2ru-unsubscribe@googlegroups.com
>>  Дополнительные варианты находятся на странице группы
>> http://groups.google.com/group/ror2ru?hl=ru
>>
>>
>>
>> --
>> Oleksiy Kovyrin
>> http://kovyrin.net/
>>
>> --
>> --
>> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
>> "RubyOnRails to russian" на группах Google.
>> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>>
>> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
>> ror2ru@googlegroups.com
>> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
>> ror2ru-unsubscribe@googlegroups.com
>> Дополнительные варианты находятся на странице группы
>> http://groups.google.com/group/ror2ru?hl=ru
>>
>> --
>> --
>> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
>> "RubyOnRails to russian" на группах Google.
>> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>>
>> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
>> ror2ru@googlegroups.com
>> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
>> ror2ru-unsubscribe@googlegroups.com
>> Дополнительные варианты находятся на странице группы
>> http://groups.google.com/group/ror2ru?hl=ru
>

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий