# Named\_scope and its :order function

**URL:** <https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991>\
**Category:** Rails\
**Created:** [July 13, 2009, 5:02am UTC](https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991 "2009-07-13T05:02:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/u/SSSSSSSSSS_SSSSSSSS)\
**Post date:** [July 13, 2009, 5:02am UTC](https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991/1 "2009-07-13T05:02:52Z")

</div>

Could someone help me to solve my problem?I’m using named\_scope,and  
there  
seems to be a little problem…  
Can I sort a model by another model’s column?For example,I have a  
“users”  
table,it has a “value” column.And in the user.rb:  
has\_many :articles

in the article.rb:  
belongs\_to :user  
named\_scope :by\_user\_value,:order =\> “…”

What I want to know is,how can I finish the :order=\>"…" parameters to  
sort the articles by there user’s “value”?Can somebody help me with  
that?Thanks a lot…

---

<div class="post-metadata">

**Author:** ![SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/u/SSSSSSSSSS_SSSSSSSS)\
**Post date:** [July 13, 2009, 5:17am UTC](https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991/2 "2009-07-13T05:17:29Z")

</div>

On Jul 13, 4:01Â am, åˆ˜å­å˜‰ [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Could someone help me to solve my problem?I’m using named\_scope,and there  
> seems to be a little problem…  
> Can I sort a model by another model’s column?For example,I have a “users”  
> table,it has a “value” column.And in the user.rb:  
> has\_many :articles

You need to joins the users table if you want to order by a column on  
it.

Fred

---

<div class="post-metadata">

**Author:** ![SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/u/SSSSSSSSSS_SSSSSSSS)\
**Post date:** [July 13, 2009, 2:09pm UTC](https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991/3 "2009-07-13T14:09:11Z")

</div>

Thanks very much.  
Could you give me some more advice how can I do this?I still don’t  
know how to join the two tables…thanks again.

---

<div class="post-metadata">

**Author:** ![SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/u/SSSSSSSSSS_SSSSSSSS)\
**Post date:** [July 18, 2009, 5:25am UTC](https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991/4 "2009-07-18T05:25:31Z")

</div>

It works!Thanks a lot…

---

<div class="post-metadata">

**Author:** ![SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c89c15/32.png) [@SSSSSSSSSS\_SSSSSSSS](https://www.ruby-forum.com/u/SSSSSSSSSS_SSSSSSSS)\
**Post date:** [July 13, 2009, 11:16pm UTC](https://www.ruby-forum.com/t/named-scope-and-its-order-function/171991/5 "2009-07-13T23:16:50Z")

</div>

Try this:

named\_scope :by\_user\_value, :include =\> :user, :order =\> ‘users.value’

If you’re not accessing the user association, you could also  
use :joins instead of :include, but I’m guessing you’ll need to load  
those records anyways.

–Matt J.
