Get name from table has many , belong to relationship

Hi Guys

I have a table with

Relationship

has many belong to

Employee table

employee id addressid 12 12 13 13

i need to access addressid data from address table

please guide me

Hi Karthik,

Firstly I should say you should be more specific than that, the info is not very clear.

Secondly I will try to help you based on what I understand of your question.

Say you create a new employee this way :

@employee = Employee.new(params[:employee])

You could do this in the controller create method :

@employee.address = Address.find() #find the address you want.

Now I will also advice you, in the new.html.erb form where your filling the Employee info, you could have a select drop down with Address data and depending on what you select, you would then automatically assign the address.

example:)

employee_controller.rb

def new

@addresses = Address.all

end

employee/new.html.erb

<%= f.select :address_id, @addresses.collect {|address| [address.text, address.id]}

the above will generate the needed select drop down for selecting the address, the values would be the id whereas the text of the options would be address.text assuming that text field is the field of address which holds the address string.

Hope it helps.

Thanks & Regards, Dhruva Sagar.

Stephen Leacock - “I detest life-insurance agents: they always argue that I shall some day die, which is not so.”

I'd argue for a person table (employees are people too), an address table, and a full join table. A person can have many addresses, and an address can have many people. People move, and you may want to keep history on a person's past addresses (especially if there's a payroll or tax implication).

Person id, first_name, last_name, etc, etc has_many :residences has_many :addresses, :through => :residences

Address id, line_1, line_2, city, state, postal_code, etc, etc has_many :residences has_many :people, :through => :residences

Residences person_id address_id additional fields, perhaps start_date, end_date, and anything else that might be related to an instance of this person at this address. belongs_to :person belongs_to :address

Maintenance of residences becomes a bit more involved (do you delete the residence, or just end it - which gets to that residence history question), but the flexibility might pay off later...

Showing field values is as simple as

@person.addresses.each do |address|   address.city   address.state   address.postal_code

or

@address.people.each do |person|   person.first_name   person.last_name