Validate_presence_of :user or :user_id?


#1

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


#2

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.

On Apr 16, 2:09 pm, Joshua M. removed_email_address@domain.invalid


#3

Thanks for your explanation. :slight_smile:

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

so if the user id is nil, then there is no error?


#4

Gavin wrote:

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?

so validates_presence_of :user does the same like the combination of
validates_presence_of :user_id and validates_associated :user… right?
thanks for the explanation. :slight_smile:


#5

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?