3

我想在下表中放置一些模型级别的验证:

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
  ...

?

4

1 回答 1

5

要验证关联的存在,请使用其名称, _id附加:

validates_presence_of :library

它将验证两件事:

  1. library_id存在
  2. 一个Library给定的id存在

使用validates_presence_of :library_id只会为您提供两者的第一个验证。

除此之外,_id如果两个记录都是新的(因此library_id仍然是未设置的),不带的版本也将正确验证。

于 2010-02-09T22:47:37.900 回答