你如何使一个数字等于一个范围?

时间:2011-03-18 19:56:04

标签: ruby-on-rails ruby range

如果我有:

(Time.now.year - CardSignup.last.dob.year) = 5

然后怎么样:

(Time.now.year - CardSignup.last.dob.year) == (1..6)

返回false

3 个答案:

答案 0 :(得分:8)

两点。

  1. 你已经翻过来了。
  2. 你遗失了a =
  3. (1..6)===(Time.now.year - CardSignup.last.dob.year)

    这应该有效。

    请记住您向范围对象(1..6)发送消息。

答案 1 :(得分:4)

(1..6) === 5

triple equals(===)是您正在寻找的运营商。 ==用于将范围与范围进行比较。

===是范围的运算符,这就是(1..6)首先出现的原因。

http://www.ruby-doc.org/core/classes/Range.html#M000698

答案 2 :(得分:4)

范围是数组,而不是单个值。单个值并不真正等于数组。你可能想要的是:

(1..6)=== Time.now.year - CardSignup.last.dob.year

(1..6).include?(Time.now.year - CardSignup.last.dob.year)