我有一个与用户模型相关的Dog模型。
class Dog < ActiveRecord::Base
belongs_to :user
validates :name, :presence => true
end
创建新狗:
= form_for([@user, @user.dogs.build]) do |s|
= render 'shared/dog_form', :s => s
由于某种原因,验证无效。它允许我创建一个新的狗,即使:name值为“”
我在User模型上使用了类似的验证,它工作正常。想法?
答案 0 :(得分:0)
尝试添加allow_blank: false
。虽然presence
应该有效。 Presence
使用object的blank?
方法检查值是nil
还是空白。看看下面的代码是否有效。
class Dog < ActiveRecord::Base
belongs_to :user
validates :name, presence: true, allow_blank: false
end
答案 1 :(得分:0)
你可以使用strict:true,这会引起你期望的错误。
class Dog < ActiveRecord::Base
belongs_to :user
validates :name, presence: { strict: true }
end