How to check if a number is included in a range (in one statement)?

(1..10).include?(number) is the trick.

Btw: If you want to validate a number using ActiveModel::Validations, you can even do:

validates_inclusion_of :number, :in => 1..10

read here about validates_inclusion_of

or the Rails 3+ way:

validates :number, :inclusion => 1..10

Enumerable#include?:

(1..10).include? n

Range#cover?:

(1..10).cover? n

Comparable#between?:

n.between? 1, 10

Numericality Validator:

validates :n, numericality: {only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 10}

Inclusion Validator:

validates :n, inclusion: 1..10

If it's not part of a validation process you can use #between? :

2.between?(1, 4)
=> true

For accurate error messages on a form submit , try these

validates_numericality_of :tax_rate, greater_than_or_equal_to: 0, less_than_or_equal_to: 100, message: 'must be between 0 & 100'

Rails 4

if you want it through ActiveModel::Validations you can use

validates_inclusion_of :number, :in => start_number..end_number

or the Rails 3 syntax

validates :number, :inclusion => start_number..end_number

But The simplest way i find is

number.between? start_number, end_number