Doubt in joins condition?

hi

I have two tables
agencies
contracts

i have one statement like below

@getdata=Agency.all(:joins=>:contracts,
:select=>“agencies.*”,:conditions=>[“agencies.status =?”,1 ])

i am able to access all data in agency but not able to access contracts
data
from above query

please guide me how to do the above it is very critical

–
Karthik.k
Mobile - +91-9894991640

And what are the relationships between these models?

Sijo

On Tue, Aug 11, 2009 at 11:03 AM, Sijo Kg
[email protected]wrote:

And what are the relationships between these models?

Sijo

Posted via http://www.ruby-forum.com/.

Hi Sijo

It has the below relation

has_and_belongs_to_many :contracts
has_and_belongs_to_many :agencies

–
Karthik.k
Mobile - +91-9894991640

Hi Karthik Kantharaj

Ok One more thing please tell what you are trying to attain with the
above query?

Sijo

On Tue, Aug 11, 2009 at 11:14 AM, Sijo Kg
[email protected]wrote:

Hi Karthik Kantharaj

Ok One more thing please tell what you are trying to attain with the
above query?

Sijo

Hi sijo

With the below query

@getdata=Agency.all(:joins=>:contracts,
:select=>“agencies.*”,:conditions=>[“agencies.status =?”,1 ])

I want to access and retrieve the data from both tables

condition both table id should be equal

e.g agencies.id=contracts.id

In the below method

for getdata in @getdata do
puts getdata.name
end

I am able to access agencies data but not contracts data
I need to know how to access contracts data

because i need to group them, one contract can have any number of
agencies

contract1
agency1
agency2
contract2
agency1
agency2

I have explained you my exact requirement sijo, i am stuck in this i
need
help

Thanks

–
Karthik.k
Mobile - +91-9894991640

Hi
you get agencies for each contract like

Contract.all.each { |c| c.agencies }

Here you get each contract information too For example

Contract.all.each do |c|
c.name #contract name
c.agencies
end

Can collect it to an array like

array = []
Contract.all.each do |c|
array << [c,c.agencies]
end
and can iterate the array now

Sijo

On Tue, Aug 11, 2009 at 12:03 PM, Sijo Kg
[email protected]wrote:

c.agencies
end

Hi Sijo

Thank you
In the below code

Contract.all.each do |c|
c.name #contract name
c.agencies
end

i am not able to get c.agencies.name
I have name in agencies table but i am not able to

help me Plz

–
Karthik.k
Mobile - +91-9894991640

On Tue, Aug 11, 2009 at 12:36 PM, Sijo Kg
[email protected]wrote:

Now in view you can iterate thru this like

Sijo

Hi Sijo

Thank you Thank you

Great Thank you

–
Karthik.k
Mobile - +91-9894991640

Hi Karthik

For example consider this

data_array = []
Contract.all.each do |c|
data_array << [c,c.agencies]
end

Now in view you can iterate thru this like

data_array.each do |arr|
puts arr[0].name
arr[1].each do |sub_arr|
puts sub_arr.name
end
end

    You can modify this according to your needs May be there some 

other easier methods

Sijo

On Tue, Aug 11, 2009 at 12:43 PM, karthik k [email protected]
wrote:

data_array = []
end

Thank you Thank you

Great Thank you

–
Karthik.k
Mobile - +91-9894991640

hi sijo

I did and got the output

<% @data_array.each do |arr|%> <% if arr[1].length>0%> <%end%> <%for sub_arr in arr[1]%>
          </tr>

          <%end%>

<%end%>

for the above table i am getting output as

e.g
contract1
agency1
agency2
contract2
agency1
agency2

Can i get in the below format

contract1
agency1 agency2

contract2
agency1 agency2
agency3

I dont know how to split from <%for sub_arr in arr[1]%>

Plz help

–
Karthik.k
Mobile - +91-9894991640

<%= arr[0].name%>
<%= sub_arr.name%>