I'm attempting to make a basic CRUD/data entry cookbook. I've got a recipe model that is composed of other models. I'm intending of using a single form to create the recipes such that n ingredients and n instructions can be associated to a single recipe.
I understand why it's not happening I just don't know how to make it stop. This is what I have so far as far as models and schema.rb: class Direction < ActiveRecord::Base belongs_to :recipe validates :number, :presence => true validates :instruction, :presence => true def step "#{number}.) #{instruction}" end end class Ingredient < ActiveRecord::Base has_one :measurement belongs_to :recipe validates :measurement, :presence => true validates :quantity, :presence => true validates :food, :presence => true end class Measurement < ActiveRecord::Base belongs_to :ingredient end class Recipe < ActiveRecord::Base has_many :ingredients has_many :directions validates :title, :presence => true validates :description, :presence => true accepts_nested_attributes_for :ingredients, :reject_if => proc { |a| a[:food].blank? } #accepts_nested_attributes_for :ingredients, :reject_if => proc { |a| a[:food].blank? } #we want to resuse ingredients if possible accepts_nested_attributes_for :directions #accepts_nested_attributes_for :directions, :reject_if => proc { |a| a[:instruction].blank? }, :allow_destroy => true #there should not be an issue with deleting directions associated to a deleted recipe #http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Method_Calls#Procs end # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # # Note that this schema.rb definition is the authoritative source for your # database schema. If you need to create the application database on another # system, you should be using db:schema:load, not running all the migrations # from scratch. The latter is a flawed and unsustainable approach (the more migrations # you'll amass, the slower it'll run and the greater likelihood for issues). # # It's strongly recommended to check this file into your version control system. ActiveRecord::Schema.define(:version => 20110314191853) do create_table "directions", :force => true do |t| t.integer "recipe_id" t.integer "number" t.text "instruction" t.datetime "created_at" t.datetime "updated_at" end create_table "ingredients", :force => true do |t| t.integer "measurement_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.datetime "created_at" t.datetime "updated_at" t.string "abbreviation" t.string "measurement" t.string "measurement_type" t.string "equivalent" end create_table "recipes", :force => true do |t| t.integer "ingredient_id" t.integer "direction_id" t.string "title" t.text "description" t.datetime "created_at" t.datetime "updated_at" t.string "source" t.string "image" t.string "cooktime" end create_table "sessions", :force => true do |t| t.string "session_id", :null => false t.text "data" t.datetime "created_at" t.datetime "updated_at" end add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id" add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at" end -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.