Connecting several tables in single database

Hi,

Anybody please tell me the tutorial way to connect and retrieve data using foreign key in a connected table.

I think I may have already answered this in my reply to your other
question, have a look at the Rails Guide on ActiveRecord
Relationships. But probably start with Getting Started guide.

Colin

Dear Collin,

I feel that I am not clearly explained you, here I included the clear explanation about the problem. I included models, controller and View. Please, find the mistake in it and tell me.

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

http://railscasts.com/episodes/47-two-many-to-many

PalaniKannan K wrote:

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

has_many models should be pluralized

class name < ActiveRecord::Base
  has_many :cities
  has_many :countries
end

Dear Ar Chron,

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

Why are you asking the same question in multiple threads?

Colin

Hi,

Extreme sorry for all and Colin, I posted in several thread… I will not post repeated posts once again.

You are probably getting an "undefined method 'cities' for #<Array:blah

" error. Address each hierarchy level in turn...

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

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

Dear All,

Finally, tables are connecting and displaying data once i provided “set_primary_key”. I read about role of “foreign key” in connecting table. But, I dont know the role of “primary_key” in connecting tables. Anybody knows it???