Forum: Ruby on Rails validate_presence_of :user or :user_id?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Fc582698581884352e745d1d4c64699d?d=identicon&s=25 Joshua Muheim (josh)
on 2009-04-16 15:09
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
648a71a35ce6e4a1c5cd63451a2a20df?d=identicon&s=25 Gavin (Guest)
on 2009-04-16 15:24
(Received via mailing list)
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 Muheim <rails-mailing-l...@andreas-s.net>
Fc582698581884352e745d1d4c64699d?d=identicon&s=25 Joshua Muheim (josh)
on 2009-04-16 15:28
Thanks for your explanation. :-)

> 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?
648a71a35ce6e4a1c5cd63451a2a20df?d=identicon&s=25 Gavin (Guest)
on 2009-04-16 15:35
(Received via mailing list)
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?
Fc582698581884352e745d1d4c64699d?d=identicon&s=25 Joshua Muheim (josh)
on 2009-04-16 17:08
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. :-)
This topic is locked and can not be replied to.