我的上一个问题https://stackoverflow.com/questions/13112897/rails-begginer-validations因为过于本地化而被关闭,所以我会尝试更加通用。
是否可以将值从当前记录(或从会话)传递到验证选项?
这有效:
validates :name, :length => { :minimum => 2 }
但是,如果我的模型中有“minlength”字段,并希望根据“minlength”字段中的值验证“name”的长度 - 我该怎么做?
这些例子不起作用。
validates :name, :length => { :minimum => self.minlength }
validates :name, :length => { :minimum => :minlength }
validates :name, :length => { :minimum => session_variable_with_minlength_value }
答案 0 :(得分:0)
您可以为此传递自定义验证:
例如
validate:name_length
def name_length
if self.name.size < self.minlength.to_i
errors[:base] << "whatever error message you want to display here"
end
end