Ruby on Rails:关于validates_presence_of的问题

我在基于ActiveRecord的模型中有一个关系,如下所示:

belongs_to :foo 

我的模型应始终在其中定义foo,以使其有效。 我的问题是,当使用validates_presence时,哪一个是合适的使用者:

 validates_presence_of :foo 

要么

 validates_presence_of :foo_id 

当然假设这里foo_id是适当的外键,如果不更改关联键,默认情况下它是默认的。

第一个: validates_presence_of :foo (虽然我认为第二个也可以)。 通常,Rubyvalidation助手使用模型名称而不是显式列名称。 除了 validates_associated 之外,您还可以使用此方法 validates_associated关联实体的状态以及其存在。

您可能需要考虑validates_associated

这将确保关联有效。

我使用validates_presence_of :foo_id 。 有用。