代表MySQL中的无限

时间:2011-04-20 13:06:36

标签: mysql ruby-on-rails ruby ruby-on-rails-3

我一直在建立一个跟踪作者版税的系统。假设作者的特许权使用费率基于销售额:0 - 5000,他们说,10%。 5001 - 10,000他们得到15%。我的问题是,如何告诉Rails最终规则应该是10,001 - 无穷大?现在,这表示在royalty_rules表中,其中包含较低和较高的列以及每个royalty_rule belongs_to:contract和每个合约:has_many royalty_rules。

我对日期有类似的问题......我在日期中列出了开始和结束时间,有时候,我不希望合同有结束日期。

3 个答案:

答案 0 :(得分:3)

虽然Ruby没有Infinity-Infinity的常量,但它确实知道了这些概念,你可以自己创建它们:

irb> Numeric::Infinity = 1.0/0
#=> Infinity

irb> range = 10001..Numeric::Infinity
#=> 10001..Infinity

irb> range.include?( 234234234234134134134 )
#=> true

编辑实际上,Ruby 1.9.2似乎添加了Float::INFINITY,所以如果你处于领先优势,你可以使用它。

答案 1 :(得分:2)

以下是关于使用Infinity in Rails

的小教程

答案 2 :(得分:0)

我建议允许上限列在数据库中取NULL。这将映射到Rails中的nil,并且很容易通过nil?nil为“falsey”的事实进行测试。

相关问题