Ben Johnson wrote:
In the docs it says I should validate the presence of the foreign key and not the object itself. I did this and I still get the error when both objects are new records. A very simple example:
class UserGroup < ActiveRecord::Base has_many :users, :dependent => :destroy end
class User < ActiveRecord::Base belongs_to :user_group validates_presence_of :user_group_id end
user_group = UserGroup.new user_group.users.build user_group.save!
Tells me that users is invalid and it says that user group cant be blank. In the docs it says if I do this I should not get this error. Is this a new edition to ActiveRecord or something? I am using edge rails. Thanks!
To my mind the API doc's advice to validate presence of foreign keys rather than associations is wrong, as I have written about before:
http://groups.google.com/group/rubyonrails-talk/msg/0c827209dd10e767
Validating the presence of associations is the Rails equivalent of DB fk constraints. Validating the presence of foreign_key attributes just checks that they're not null. They could still point to non-existent records.