rails验证 - 将值传递给选项

时间:2012-10-29 09:34:22

标签: ruby-on-rails validation option

我的上一个问题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 }

1 个答案:

答案 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