# Has\_many through relation data

**URL:** <https://www.ruby-forum.com/t/has-many-through-relation-data/141638>\
**Category:** Rails\
**Created:** [June 28, 2008, 2:08am UTC](https://www.ruby-forum.com/t/has-many-through-relation-data/141638 "2008-06-28T02:08:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![arvias](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ac91a4/32.png) [@arvias](https://www.ruby-forum.com/u/arvias)\
**Post date:** [June 28, 2008, 2:08am UTC](https://www.ruby-forum.com/t/has-many-through-relation-data/141638/1 "2008-06-28T02:08:18Z")

</div>

Hi,

I have the regular has\_many through setup:  
user:  
has\_many subscriptions  
has\_many magazines, through subscriptions

subscription holds important data like expiration date and other  
pieces of information.

I am looking to display the subscription information without having to  
resort to an extra query for each magazine.

For my particular case I have a RESTful magazines controller where I  
run :  
@magazines = current\_user.magazines. In my view I need to display the  
subscription data for each magazine.

Doing something like @magazine.subscriptions would return all  
subscriptions and @magazine.subscriptions.find(:first, :conditions =\>  
[‘magazine\_id = xx AND user\_id = xxx’]) would have to make a query  
for each item.

How would you do it?

–  
M

---

<div class="post-metadata">

**Author:** ![arvias](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ac91a4/32.png) [@arvias](https://www.ruby-forum.com/u/arvias)\
**Post date:** [June 28, 2008, 5:38am UTC](https://www.ruby-forum.com/t/has-many-through-relation-data/141638/2 "2008-06-28T05:38:46Z")

</div>

Assuming the user id comes from params, I’m thinking:

@user = User.find(params[:id], :include {subscriptions =\> :magazines})
