Validating the presence of a foreign key?

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.

Ohh, thanks for the information.

-Thufir