I have an Ingredient which has a Measurement.
class Ingredient < ActiveRecord::Base has_one :measurement belongs_to :recipe
accepts_nested_attributes_for :measurement end
class Measurement < ActiveRecord::Base belongs_to :ingredient end
The schemas appear right:
create_table "ingredients", :force => true do |t| t.integer "measurement_id" t.integer "recipe_id" t.string "quantity" t.string "food" t.datetime "created_at" t.datetime "updated_at" end
create_table "measurements", :force => true do |t| t.string "size" t.float "quantity" t.string "abbreviation" t.string "measurement" t.string "measurement_type" t.string "equivalent" t.datetime "created_at" t.datetime "updated_at" end
But I'm still getting this error preventing me from doing an ingredient.measurement.abbreviation, but ingredient.measurement_id works:
ActiveRecord::StatementInvalid in Recipes#show
Showing /Users/mkidd/Sites/cookbook/app/views/recipes/show.html.erb where line #14 raised:
SQLite3::SQLException: no such column: measurements.ingredient_id: SELECT "measurements".* FROM "measurements" WHERE ("measurements".ingredient_id = 1) LIMIT 1
Extracted source (around line #14):
11: <% for ingredient in @recipe.ingredients%> 12: <li> 13: <%= ingredient.quantity %> 14: <%= ingredient.measurement %> 15: <%= ingredient.food %> 16: </li> 17: <% end %>