我可以1.5.days
。
但我怎么能1.5.months
?
在Rails控制台中查看我的结果:
>> 1.5.days
=> 1.5 days
>> 1.5.months
NoMethodError: undefined method `months' for 1.5:Float
答案 0 :(得分:2)
请参阅弃用警告here(来自Rails 2):
::的ActiveSupport :: Deprecation.warn(self.class.deprecated_method_warning(:月, “不考虑小数月份。之前将值转换为整数 叫#months。“),来电者)
自Rails 3 以来,它已被删除。
如果您查看原始来源,无论如何您都会看到这是一个令人不满意的解决方案:
ActiveSupport::Duration.new(self * 30.days, [[:months, self]])
您可以扩展float类以允许此方法:
# config/initializers/core_ext.rb
class Float
def months
ActiveSupport::Duration.new(self * 30.days, [[:months, self]])
end
end
但是,我建议不要这样做。它被移除是有原因的,可能很难实现。