I've recently read http://blog.teksol.info/articles/2006/03/08/do-not-validate-belongs_to-or-else and I seem to be experiencing conflicting behavior with Rails 1.2.3
Parent Table: id Integer name String
Child Table: id Integer name String parent_id Integer
class Parent < ActiveRecord::Base has_many :children end
class Child < ActiveRecord::Base belongs_to :parent validates_presence_of :parent_id end
So from reading the link above, as well as the warning on http://api.rubyonrails.com/classes/ActiveRecord/Validations/ClassMethods.html#M000941 I figured this would work.
parent = Parent.new(:name => "Dad") child = parent.children.build(:name => "Son") parent.save!
However I consistently get "ActiveRecord::RecordInvalid: Validation failed: Children is invalid"
This behavior is exhibited with both "validates_presence_of :parent" and ":parent_id"
However, if I remove the "validates_presence_of :parent_id" both elements are saved and the Child has been saved with the parent id appropriately.
Am I mis-reading something, or did this work in previous versions?
Running on Intel Mac, against both SQLite3 and MySQL.
-Zach