# Named\_scope

**URL:** <https://www.ruby-forum.com/t/named-scope/143743>\
**Category:** Rails\
**Created:** [July 22, 2008, 12:39pm UTC](https://www.ruby-forum.com/t/named-scope/143743 "2008-07-22T12:39:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![casp](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7c8e57/32.png) [@casp](https://www.ruby-forum.com/u/casp)\
**Post date:** [July 22, 2008, 12:39pm UTC](https://www.ruby-forum.com/t/named-scope/143743/1 "2008-07-22T12:39:30Z")

</div>

Hi,

I’m trying to make a named\_scope that only lists Products with at  
least 1 comment. product.comments.size \> 0

\*Product

has\_many :comments

\*Comment

belongs\_to :product

I haven’t figured out how to using count/size for my conditions.

Regards

---

<div class="post-metadata">

**Author:** ![casp](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7c8e57/32.png) [@casp](https://www.ruby-forum.com/u/casp)\
**Post date:** [July 22, 2008, 4:21pm UTC](https://www.ruby-forum.com/t/named-scope/143743/2 "2008-07-22T16:21:01Z")

</div>

product.comments.length is what you’re looking for.

Also check out my 2 favorite versions of the ruby and rails API’s  
here:

Ruby:

> **[rubybrain.com is For Sale](https://giganames.com/name/rubybrain.com)**
>
> Buy rubybrain.com. Brandable domain names for sale. Find your perfect brand

Rails:  
[http://www.railsbrain.com/api/rails-2.0.2/doc/](http://www.railsbrain.com/api/rails-2.0.2/doc/)

* * *

Jon Kinney  
Ruby on Rails Architect  
Inacom Information Systems

---

<div class="post-metadata">

**Author:** ![casp](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7c8e57/32.png) [@casp](https://www.ruby-forum.com/u/casp)\
**Post date:** [July 23, 2008, 3:48am UTC](https://www.ruby-forum.com/t/named-scope/143743/3 "2008-07-23T03:48:27Z")

</div>

On Tue, Jul 22, 2008 at 12:12 PM, casp [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’m trying to make a named\_scope that only lists Products with at  
> least 1 comment. product.comments.size \> 0

I think it would be enough to force an inner join:

named\_scope :commented, :joins =\> :comments

# =\> SELECT \* FROM “products” INNER JOIN “comments” ON

comments.product\_id = products.id
