Table connection issue

Dear all,

I included models, controller and View. Please, find the mistake in it and tell me. I need to fetch the data of included tables “city and country” using the query of “first name and second name” of table ‘name’.

name model
has_many :city, :foreign_key => “name_id”
has_many :country, :foreign_key => “name_id”

city model
belongs_to :name

country model
belongs_to :name

In Name Controller
@names = Name.find(:all, :conditions=>{:first_name => params[:gm], :second_name => params[:sp]}, :include => [ :city, :country ])

In Name View

<% @names.each do |name| %>

<%= name.age %>
<% end %>

<% @names.cities.each do |city| %>
<%= city.local_area %>
<% end %>

<% @names.countries.each do |country| %>
<%= country.state %>

<% end %>

Dear all,

I included models, controller and View. Please, find the mistake in it and
tell me. I need to fetch the data of included tables "city and country"
using the query of "first name and second name" of table 'name'.

You could start by stating what the problem is rather than leaving
people to guess.

Fred

Dear all,

I included models, controller and View. Please, find the mistake in it and
tell me. I need to fetch the data of included tables "city and country"
using the query of "first name and second name" of table 'name'.

name model
has_many :city, :foreign_key => "name_id"
has_many :country, :foreign_key => "name_id"

That should be :cities and :countries. You don't need the foreign key
spec, name_id is the default.

Colin

Dear Colin,

Thanks for your correction. The error solved, but its not still showing the values for

<%= city.local_area %>
<%= country.state %>

Hi,

I tried with

In View

<% @names.each do |name| %>

<%= name.age %>

<% name.cities.each do |city| %>
<%= city.local_area %>
<% name.countries.each do |country| %>
<%= country.state %>

<% end %>

This shows no error with no output of city.local_area and country.state.

Please don't top post it makes it difficult to follow the thread, thanks.

Hi,

I tried with

In View

<% @names.each do |name| %>
<%= name.age %>
<% name.cities.each do |city| %>
<%= city.local_area %>
<% name.countries.each do |country| %>
<%= country.state %>
<% end %>

This shows no error with no output of city.local_area and country.state.

Are you sure it is finding any cities and countries? Try displaying
name.cities.count and the same for countries. Even better have a look
at the Rails Guide on debugging and use ruby-debug to break in and
examine the variables.

Colin