我一直在建立一个追踪作者版税的系统。假设作者的版税是基于销售额:0 - 5000,他们得到10%。5001 - 10000,他们得到15%。我的问题是,我如何告诉Rails最终规则应该是10,001 -无穷大?现在,这是在royalty_rules表中表示的,它有上下列,每个royalty_rule belongs_to: contract和每个contract:has_many royalty_rules。
我在日期方面也有类似的问题…我把开始和结束的时间写在日期里,有时,我不希望合同有结束的日期。
虽然Ruby没有Infinity
或-Infinity
的常量,但它确实知道这些概念,您可以自己创建它们:
irb> Numeric::Infinity = 1.0/0
#=> Infinity
irb> range = 10001..Numeric::Infinity
#=> 10001..Infinity
irb> range.include?( 234234234234134134134 )
#=> true
Edit: 实际上,Ruby 1.9.2似乎已经添加了Float::INFINITY
,所以如果你处于领先地位,你可以使用它
这里是关于在Rails中使用Infinity的小教程
我建议允许数据库中的上限列为NULL。这将映射到Rails中的nil
,并且很容易测试,无论是nil?
还是nil
是"假"的事实。