代码之家  ›  专栏  ›  技术社区  ›  randombits

Ruby on Rails:关于验证

  •  11
  • randombits  · 技术社区  · 14 年前

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

    belongs_to :foo
    

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

    validates_presence_of :foo
    

    validates_presence_of :foo_id
    

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

    3 回复  |  直到 14 年前
        1
  •  8
  •   Richard Cook    14 年前

    第一个: validates_presence_of :foo (尽管我认为第二个也会有用)。通常,Ruby验证帮助程序处理模型名,而不是显式的列名。你可以用这个 除了 validates_associated 同时验证关联实体的状态以及它的存在。

        2
  •  1
  •   The Who    14 年前

    你可能想考虑 validates_associated

    这将确保关联有效。

        3
  •  0
  •   antage    14 年前

    我用 validates_presence_of :foo_id . 它起作用了。