Если у меня есть:
(Time.now.year - CardSignup.last.dob.year) = 5
Тогда почему:
(Time.now.year - CardSignup.last.dob.year) == (1..6)
Возвращает false?
false
Два очка.
(1..6) === (Time.now.year - CardSignup.last.dob.year)
Это должно сработать.
Помните, что вы отправляли сообщение объекту диапазона (1..6).
Диапазон - это массив, а не одно значение.Одно значение на самом деле не равно массиву.То, что вы можете захотеть:
(1..6) === Time.now.year - CardSignup.last.dob.year
или
(1..6) .include? (Time.now.year - CardSignup.last.dob.year)
(1..6) === 5
triple equals (===) - это оператор, которого вы ищете. == для сравнения диапазона с диапазоном.
=== является оператором диапазона, поэтому (1..6) идет первым.
http://www.ruby -doc.org / ядро / классов / Range.html # M000698