Bac*_*cko 77 ruby numbers ruby-on-rails range ruby-on-rails-3
我正在使用Ruby on Rails 3.0.9,我想检查一个数字是否包含在一个范围内.也就是说,如果我有一个变量,number = 5我想检查1 <= number <= 10并检索一个布尔值,如果该number值包含在该范围内.
我可以这样做:
number >= 1 && number <= 10
Run Code Online (Sandbox Code Playgroud)
但我想在一个声明中这样做.我怎样才能做到这一点?
Mar*_*her 149
(1..10).include?(number) 是诀窍.
顺便说一句:如果你想用一个数字验证ActiveModel::Validations,你甚至可以这样做:
validates_inclusion_of :number, :in => 1..10
Run Code Online (Sandbox Code Playgroud)
在这里阅读validates_inclusion_of
或者Rails 3方式:
validates :number, :inclusion => 1..10
Run Code Online (Sandbox Code Playgroud)
tyb*_*103 56
(1..10).include? n
Run Code Online (Sandbox Code Playgroud)
(1..10).cover? n
Run Code Online (Sandbox Code Playgroud)
n.between? 1, 10
Run Code Online (Sandbox Code Playgroud)
validates :n, numericality: {only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 10}
Run Code Online (Sandbox Code Playgroud)
validates :n, inclusion: 1..10
Run Code Online (Sandbox Code Playgroud)
Hol*_*lin 16
如果它不是验证过程的一部分,您可以使用#between?:
2.between?(1, 4)
=> true
Run Code Online (Sandbox Code Playgroud)
要在表单提交上获得准确的错误消息,请尝试这些
validates_numericality_of :tax_rate, greater_than_or_equal_to: 0, less_than_or_equal_to: 100, message: 'must be between 0 & 100'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56846 次 |
| 最近记录: |