Joining three tables

Hi I really need some help. I’m new on rails and I need to join three
tables in one view.

I have three models
class TypeEvent < ActiveRecord::Base
end
class Event < ActiveRecord::Base
belongs_to :type_event
belongs_to :computer
end

class Computer < ActiveRecord::Base
belongs_to :room
has_many :events, :dependent => :delete_all
end

The show action in the Computer controller is written like this :
def show
@computer = Computer.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @computer }
end
end
I would like to display the following fields in the show.html.erb view
type_events.name from the type_events table
events.information from the type_events table
events.state , events.created_at , envents.updated_at from the events
table

Can anybody help me ?

On 7 February 2012 11:41, Tony N. [email protected] wrote:

Hi I really need some help. I’m new on rails and I need to join three
tables in one view.

I have three models
class TypeEvent < ActiveRecord::Base

You want has_many :events here.

The show action in the Computer controller is written like this :
events.state , events.created_at , envents.updated_at from the events
table

@computer.events will give you all the events for that computer so you
can loop through those. Something like
@computer.events.each do |event|
then you can display the attributes for each event. The type_event
for the event is then event.type_event so you can access its
attributes also.

Colin

Thanks I’ll try it right now. Thank you for your help.

and I would name the class EventType for me it seems more logical and
easier to read but that is just me.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs