タイムスタンプに基づいて税率を取得しようとしています。Time クラスで「tax_rate」を定義する単純な mixin を実行しても意味がありません。「tax_rate」を「Government」クラス(またはモジュール?私がこれに慣れていないことはわかりません)に配置し、現在の時刻を想定するオプションを使用してメソッドを Time クラスで使用できるようにする方が理にかなっています単独で使用する場合。
例:
Time.now.tax_rate
== 0.13
10.years_ago.tax_rate
== 0.10
Government.tax_rate
== 0.13
(Time.now を想定)
メソッド tax_rate は次のとおりです。
def self.tax_rate
t = self || Time.now # I know this part won't work properly, I'll fix it later. I want it to default to using the current Time object or if the method is used on its own, the current time.
return 0.10 if t < Time.parse("July 1, 2001")
return 0.12 if t < Time.parse("July 1, 2010")
0.13
end
私は基本的に、Rails プロジェクトでさまざまなクラスの税率を参照する必要がありますが、それをモデルの 1 つに直接入れるのは適切ではないと感じています。それはそれ自身である必要があります。