Nic*_*lek 4 ruby-on-rails ruby-on-rails-3
我在表中有大约10个属性,它们将数字作为值,对于每个属性,我想验证是否将1到100之间的数字传递给输入.我有什么想法可以将下面的代码减少到一个方法验证?
目前,对于每个属性,我这样做;
validates_numericality_of :valueone, :less_than_or_equal_to => 100
validates_numericality_of :valuetwo, :less_than_or_equal_to => 100
validates_numericality_of :valuethree, :less_than_or_equal_to => 100
等等
任何帮助深表感谢.谢谢.
小智 8
我认为你应该使用常量.它将产生一个更优雅的代码,如下所示:
class Whatever
MIN = 1
MAX = 100
validates :valueone, :valuetwo, :valuethree, :length => { :within => MIN..MAX }
end
Run Code Online (Sandbox Code Playgroud)
您可以使用与上面相同的验证列出所有属性.
这应该做到这一点.=)
.each 会很好地工作:
[:valueone, :valuetwo, :valuethree, ...].each do |n|
validates n, :numericality => { :greater_than => 0, :less_than_or_equal_to => 100 }
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5548 次 |
| 最近记录: |