我想在下表中进行一些模型级验证:
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
...
答案 0 :(得分:5)
要验证关联的存在,请使用其名称,不附加 _id
:
validates_presence_of :library
它将验证两件事:
library_id
在场Library
存在的id
使用validates_presence_of :library_id
只能为您提供第一次验证。
除此之外,没有_id
的版本也会正确验证两个记录是否都是新的(因此library_id
仍未设置)。