I have the following:
Schema
create_table "mouldings", :force => true do |t|
t.string "suppliers_code"
t.datetime "created_at"
t.datetime "updated_at"
t.string "name"
t.integer "supplier_id"
t.decimal "length"
t.decimal "cost"
t.decimal "width"
t.decimal "depth"
end
create_table "suppliers", :force => true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
Models
class Moulding < ActiveRecord::Base
# Set up associations
belongs_to :suppliers
end
class Supplier < ActiveRecord::Base
# Associations
has_many :mouldings, :dependent => :destroy
end
Controller
def show
@moulding = Moulding.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @moulding }
end
end
I want to join the two tables so I can include the supplier’s name in a view. What is the correct syntax for the controller?
First off your syntax is a bit off in your moldings model. It’s should be
suppliersingularIf you want the supplier name use this in the controller or view.
Also if you’re going to be looping through a bunch of moldings you’ll want to include suppliers in your initial query so it doesn’t run a query for each time it lists a suppliers name. The syntax for that is:
I’d also suggest taking a look at the official Active Record Associations and Query Interface guides (for Rails 3)