我有模型项目并验证:
validates_presence_of :name, :position, :tel
Project还有另一个属性,例如:flag。 我想这样做: 如果输入:name,:position,:tel,则:flag = true, 如果未指定其中一个属性,则:flag = false。
我怎样才能做到?在模型?
答案 0 :(得分:1)
您声明验证的方式,除非用户输入全部三个,否则模型甚至不会保存,因此将flag设置为false是没有意义的。
话虽这么说,如果你想根据其他属性的值在保存时设置一个属性,你可以使用callback hooks之一,如before_save。
class Project << ActiveRecord::Base
before_save :set_flag
protected
def set_flag
self.flag = (self.name.blank? || self.position.blank? || self.tel.blank?) ? false : true
end
end