如何返回Rails模型的验证值

时间:2016-03-19 08:07:01

标签: ruby-on-rails

给出模型验证,例如

validates :my_number, 
  numericality: { 
    greater_than_or_equal_to: 1,
    less_than_or_equal_to: 300
  }

我如何阅读,例如在视图中显示这些值?

MyModel.validators_on(:my_number).first.options[:on_or_before]

似乎越来越近了。但是这会返回一个文件行引用,我不确定如何操作它来返回一个值。

#<Proc:0x007fa5a3d3eb90@/Path/To/Project/app/models/my_model.rb:128 (lambda)>

是否有方便的方法来访问这些验证值并在视图中执行某些操作,如

<p>This value must be between <%= @model.my_number.validation_greater_than %> and <%= @model.my_number.validation_less_than %></p>

1 个答案:

答案 0 :(得分:0)

我会设置限制1&amp; 300在模型的常量中,然后在视图中访问它们,如:

... <%= ModelClass::MAX_MY_NUMBER % ... <%= ModelClass::MINIMUM_MY_NUMBER %> ...

并在模型验证中如下:

validates :my_number, 
  numericality: { 
    greater_than_or_equal_to: MINIMUM_MY_NUMBER,
    less_than_or_equal_to: MAX_MY_NUMBER
  }