Estoy usando Ruby on Rails 3.0.9 y me gustaría comprobar si un número está incluido en un rango. Es decir, si tengo una variablenumber = 5 me gustaría verificar 1 <= number <= 10y recuperar un valor booleano si el numbervalor está incluido en ese rango.
Puedo hacer eso así:
number >= 1 && number <= 10
pero me gustaría hacer eso en una declaración. ¿Cómo puedo hacer eso?

Respuestas:
(1..10).include?(number)es el truco.Por cierto: si desea validar un número usando
ActiveModel::Validations, incluso puede hacer:validates_inclusion_of :number, :in => 1..10leer aquí sobre validates_inclusion_of
o la forma Rails 3+:
validates :number, :inclusion => 1..10fuente
allow_nil. Solo agrégalo así:, allow_nil: trueEnumerable # incluir? :
(1..10).include? n¿Cobertura de rango #? :
(1..10).cover? nComparable # entre? :
n.between? 1, 10Validador de numericalidad :
validates :n, numericality: {only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 10}Validador de inclusión :
validates :n, inclusion: 1..10fuente
validates :amount, numericality: { less_than_or_equal_to: ->(m) { m.user.balance }, greater_than_or_equal_to: 0 }Si no es parte de un proceso de validación, puede usar
#between?:2.between?(1, 4) => truefuente
Para obtener mensajes de error precisos en el envío de un formulario, pruebe estos
validates_numericality_of :tax_rate, greater_than_or_equal_to: 0, less_than_or_equal_to: 100, message: 'must be between 0 & 100'fuente
Carriles 4
validates_inclusion_of :number, :in => start_number..end_numbervalidates :number, :inclusion => start_number..end_numberPero la forma más sencilla que encuentro es
number.between? start_number, end_numberfuente
En Ruby 1.9, la traducción más directa parece ser Range # cover? :
En caso de que se pregunte en qué se diferencia de
Range#include?, es que este último itera sobre todos los elementos del rango si es un rango no numérico. Consulte esta publicación de blog para obtener una explicación más detallada.fuente
Si desea verificar que un número particular existe en una matriz personalizada,
Como por ejemplo, quiero saber si 5 está incluido en la lista = [1,4,6,10] o no
list.include? 5 => false list.include? 6 => truefuente