Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on Rails: question about validates_presence_of

I have a relationship in my ActiveRecord based model that looks like:

belongs_to :foo

My model should always have foo defined in it for it to be valid. My question is, when using validates_presence of, which one is the appropriate one to use:

validates_presence_of :foo

or

validates_presence_of :foo_id

Assuming here of course, that foo_id is the appropriate foreign key, which it is by default if you do not change the association key.

like image 346
randombits Avatar asked Sep 20 '10 21:09

randombits


2 Answers

The first one: validates_presence_of :foo (though I think the second one will work too). In general the Ruby validation helpers work on model names as opposed to explicit column names. You can use this in addition to validates_associated to both validate the state of the associated entity in addition to its presence.

like image 82
Richard Cook Avatar answered Nov 17 '22 12:11

Richard Cook


You may want to consider validates_associated

This will make sure that the association is valid.

like image 1
The Who Avatar answered Nov 17 '22 13:11

The Who