我在基于ActiveRecord的模型中有一个关系,看起来像这样:
belongs_to :foo
我的模型应始终在其中定义 foo 才能有效。 我的问题是,在使用 validates_presence of 时,哪一个是适当的:
validates_presence_of :foo
或者validates_presence_of :foo_id
当然,这里假设foo_id是适当的外键,如果您没有更改关联键,则默认情况下它就是适当的外键。
我在基于ActiveRecord的模型中有一个关系,看起来像这样:
belongs_to :foo
我的模型应始终在其中定义 foo 才能有效。 我的问题是,在使用 validates_presence of 时,哪一个是适当的:
validates_presence_of :foo
或者validates_presence_of :foo_id
当然,这里假设foo_id是适当的外键,如果您没有更改关联键,则默认情况下它就是适当的外键。
validates_presence_of :foo
(虽然我认为第二种方法也可以)。通常,Ruby验证助手适用于模型名称而不是显式列名。您可以使用此方法以及validates_associated
来同时验证关联实体的状态和存在性。validates_associated
,这将确保关联是有效的。我使用 validates_presence_of :foo_id
。它有效。