How to get id of other table

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

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

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/
")

On Sun, Aug 9, 2009 at 1:11 AM, s.ross [email protected] 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

thankyou Mukund
i got it
and it works

On Mon, Aug 10, 2009 at 12:33 PM, Mukund [email protected] wrote:

it.

I’m having 2 models
@conts=Cont.find(:all])


Regards,
Wasim
+91-9003652450


Regards,
Wasim
+91-9003652450

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.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs