Tôi vừa mới bắt đầu học Ruby và Ruby on Rails và bắt gặp mã xác thực sử dụng các phạm vi:
validates_inclusion_of :age, :in => 21..99
validates_exclusion_of :age, :in => 0...21, :message => "Sorry, you must be over 21"
Lúc đầu, tôi nghĩ sự khác biệt nằm ở việc bao gồm các điểm cuối, nhưng trong tài liệu API mà tôi đã xem xét, dường như không quan trọng dù nó có ..
hay không ...
: nó luôn bao gồm các điểm cuối.
Tuy nhiên, tôi đã thực hiện một số thử nghiệm trong irb và nó dường như chỉ ra rằng ..
bao gồm cả hai điểm cuối, trong khi ...
chỉ bao gồm giới hạn dưới chứ không bao gồm giới hạn trên. Điều này có chính xác?
(1..10).include? 10 #=> true
và(1...10).include? 10 #=> false