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