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 %>
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.
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.
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.