validate_presence_of :user or :user_id?

Hi all

I'm a bit confused whether it's better to check for the ID of a related object or the related object itself?

validates_presence_of :user # is this better? validates_presence_of :user_id # or is this better?

What would you suggest? Thanks, Josh

validates_presence_of :user_id will test if there is a value for self.user_id regardless of whether there is a valid user with that id on the database.

If you're going to use :user_id then you should include validates_associated :user to check the user is valid

validates_presence_of :user will check that the associated user is a valid record.

validates_presence_of :user_id only tests that there is a value for user_id

with this method, user_id could be any integer, not necessarily a valid user.

validates_presence_of :user will also check that the user is a valid record on the database.

That clear it up?