できます1.5.days
。
しかし、どうすればいい1.5.months
ですか?
Railsコンソールで私の結果を見てください:
>> 1.5.days
=> 1.5 days
>> 1.5.months
NoMethodError: undefined method `months' for 1.5:Float
できます1.5.days
。
しかし、どうすればいい1.5.months
ですか?
Railsコンソールで私の結果を見てください:
>> 1.5.days
=> 1.5 days
>> 1.5.months
NoMethodError: undefined method `months' for 1.5:Float
ここで非推奨の警告を参照してください(Rails 2から):
::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:months, " 小数月は考慮されません。#months を呼び出す前に値を整数に変換してください。 "), caller)
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
しかし、私はそれに対してお勧めします。何らかの理由で削除されましたが、実装にはかなり問題がある可能性があります。