Ruby on Rails 3.0.9를 사용하고 있으며 범위에 숫자가 포함되어 있는지 확인하고 싶습니다. 즉, 변수가있는 경우 값이 해당 범위에 포함되어 있으면 부울 값 number = 5
을 확인 1 <= number <= 10
하고 검색하고 싶습니다 number
.
다음과 같이 할 수 있습니다.
number >= 1 && number <= 10
하지만 저는 한 문장으로하고 싶습니다. 어떻게 할 수 있습니까?
Ruby on Rails 3.0.9를 사용하고 있으며 범위에 숫자가 포함되어 있는지 확인하고 싶습니다. 즉, 변수가있는 경우 값이 해당 범위에 포함되어 있으면 부울 값 number = 5
을 확인 1 <= number <= 10
하고 검색하고 싶습니다 number
.
다음과 같이 할 수 있습니다.
number >= 1 && number <= 10
하지만 저는 한 문장으로하고 싶습니다. 어떻게 할 수 있습니까?
답변:
allow_nil
있습니다. 다음과 같이 추가하면됩니다., allow_nil: true
(1..10).include? n
(1..10).cover? n
n.between? 1, 10
수치 검사기 :
validates :n, numericality: {only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 10}
validates :n, inclusion: 1..10
validates :amount, numericality: { less_than_or_equal_to: ->(m) { m.user.balance }, greater_than_or_equal_to: 0 }
레일스 4
ActiveModel :: Validations를 통해 원하는 경우 사용할 수 있습니다.
validates_inclusion_of :number, :in => start_number..end_number
또는 Rails 3 구문
validates :number, :inclusion => start_number..end_number
하지만 내가 찾는 가장 간단한 방법은
number.between? start_number, end_number
Ruby 1.9에서 가장 직접적인 번역은 Range # cover? :
obj가 beg와 end 사이에 있으면 true를 반환합니다. 즉, beg <= obj <= end (또는 exclude_end?가 true 일 때 end exclusive)를 반환합니다.
그것이과 다른 점이 궁금 Range#include?
하다면 후자가 숫자가 아닌 범위이면 범위의 모든 요소를 반복한다는 것입니다. 자세한 설명 은이 블로그 게시물 을 참조하십시오 .
사용자 지정 배열에 특정 번호가 있는지 확인하려면
예를 들어 5가 list = [1,4,6,10]에 포함되어 있는지 여부를 알고 싶습니다.
list.include? 5 => false
list.include? 6 => true