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

轨道和模型验证

  •  3
  • Ash  · 技术社区  · 15 年前

    我想在下表中进行一些模型级验证:

    create_table :audios do |t|
      t.integer :library_id, :null => false
      t.string :file, :null => false, :limit => 2048
      t.string :name, :limit => 512
      t.timestamps
    end
    

    这是否意味着我的模型(目前为止)看起来像:

    class Audio < ActiveRecord::Base
      belongs_to :library
    end
    

    class Audio < ActiveRecord::Base
      validates_presence_of :library
      ...
    

    class Audio < ActiveRecord::Base
      validates_presence_of :library_id
      ...
    

    ?

    1 回复  |  直到 15 年前
        1
  •  5
  •   molf    15 年前

    要验证关联是否存在,请使用其名称, 没有 _id 附加:

    validates_presence_of :library
    

    它将验证两件事:

    1. library_id 是存在的
    2. Library 用给定的 id 存在

    使用 validates_presence_of :library_id 只会给你两个的第一个确认。

    除此之外,没有 圣婴 如果两个记录都是新的(因此 图书馆员 仍然未设置)。