# How to get id of other table

**URL:** <https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420>\
**Category:** Rails\
**Created:** [August 8, 2009, 11:18am UTC](https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420 "2009-08-08T11:18:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![akramwasim1234](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b3f665/32.png) [@akramwasim1234](https://www.ruby-forum.com/u/akramwasim1234)\
**Post date:** [August 8, 2009, 11:18am UTC](https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420/1 "2009-08-08T11:18:10Z")

</div>

Hi All,  
I have a doubt regarding join tables  
I’m having 2 models  
1)Fac  
2)Cont

and both models have " has and belong to many" relationships  
so there are 3 tables  
1)facs  
2)conts  
3)conts\_facs

then i’m fetching the data in controller as  
@conts=Cont.find(:all])  
@cfacs=Fac.all(:joins=\>:conts, :select=\>“facs.name”)

but i dont know how to get the cont\_id in the join table from @cfacs  
example:

```
                      for nd in @cfacs
                           puts nd.cont_id
                      end

```

show me an error as “no method cont.id in Fac”

Please help me regarding this

---

<div class="post-metadata">

**Author:** ![akramwasim1234](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b3f665/32.png) [@akramwasim1234](https://www.ruby-forum.com/u/akramwasim1234)\
**Post date:** [August 8, 2009, 9:42pm UTC](https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420/2 "2009-08-08T21:42:45Z")

</div>

On Aug 8, 2009, at 2:16 AM, Kart wrote:

> 2)conts  
> puts nd.cont\_id  
> end
> 
> show me an error as “no method cont.id in Fac”

Right. You told Rails only to select facs.name. It’s not clear from  
your post why you are using a :joins in a habtm association, as that  
should be implied, however something like this should work:

@conts = Cont.all # assumes relatively recent Rails. If older, use  
Cont.find(:all)  
@conts.facs.each do |fac|  
puts fac[:id]  
end

---

<div class="post-metadata">

**Author:** ![akramwasim1234](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b3f665/32.png) [@akramwasim1234](https://www.ruby-forum.com/u/akramwasim1234)\
**Post date:** [August 10, 2009, 6:19am UTC](https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420/3 "2009-08-10T06:19:16Z")

</div>

thankyou S.Ross

the problem is I have to get cont.id associated with each fac (foreign  
key)and in the @cfacs=Fac.all(:joins=\>:conts, :select=\>“facs.name”) i’ll  
rewrite it as  
@cfacs=Fac.all(:joins=\>:conts,  
:select=\>"facs._,facs\_conts._,conts.\*[http://facs.name/](http://facs.name/)  
")

On Sun, Aug 9, 2009 at 1:11 AM, s.ross [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > but i dont know how to get the cont\_id in the join table from @cfacs  
> > should be implied, however something like this should work:
> 
> @conts = Cont.all # assumes relatively recent Rails. If older, use  
> Cont.find(:all)  
> @conts.facs.each do |fac|  
> puts fac[:id]  
> end
> 
> >

–  
Regards,  
Wasim  
+91-9003652450

---

<div class="post-metadata">

**Author:** ![akramwasim1234](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b3f665/32.png) [@akramwasim1234](https://www.ruby-forum.com/u/akramwasim1234)\
**Post date:** [August 10, 2009, 11:24am UTC](https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420/4 "2009-08-10T11:24:49Z")

</div>

thankyou Mukund  
i got it  
and it works

On Mon, Aug 10, 2009 at 12:33 PM, Mukund [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> it.
> 
> > > > I’m having 2 models  
> > > > @conts=Cont.find(:all])
> > 
> > –  
> > Regards,  
> > Wasim  
> > +91-9003652450

–  
Regards,  
Wasim  
+91-9003652450

---

<div class="post-metadata">

**Author:** ![akramwasim1234](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/b3f665/32.png) [@akramwasim1234](https://www.ruby-forum.com/u/akramwasim1234)\
**Post date:** [August 10, 2009, 9:04am UTC](https://www.ruby-forum.com/t/how-to-get-id-of-other-table/173420/5 "2009-08-10T09:04:55Z")

</div>

Don’t do @cfacs=Fac.all  
(:joins=\>:conts, :select=\>“facs._,facs\_conts._,conts.\*”)

If you need only the conts.id along with any other data that you need,  
do

@cfacs = Fac.all(:include =\> :conts, :select=\> “conts.id, facs.\*”)

You don’t need to specify the join as the relationship takes care of  
it.
