我在基于ActiveRecord的模型中有一段关系,如下所示:
belongs_to :foo
我的模型应始终在其中定义foo,以使其有效。我的问题是,当使用validates_presence时,哪一个是合适的使用者:
validates_presence_of :foo
或
validates_presence_of :foo_id
当然假设这个foo_id是适当的外键,如果不更改关联键,默认情况下它是默认的。
答案 0 :(得分:8)
第一个:validates_presence_of :foo
(虽然我认为第二个也会起作用)。通常,Ruby验证助手使用模型名称而不是显式列名称。除了 validates_associated
之外,您还可以使用此来验证关联实体的状态以及其存在。
答案 1 :(得分:1)
您可能需要考虑validates_associated
这将确保关联有效。
答案 2 :(得分:0)
我使用validates_presence_of :foo_id
。它有效。