0

我的最后一个问题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 }
4

1 回答 1

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
于 2012-10-29T09:53:13.900 回答