属性と仮想属性を持つCommercialDocument
モデルがあります。discount_amount
discount_amount_with_tax
モデルでこれを定義した方法は次のとおりです。
def discount_amount_with_tax
discount_amount * (1 + tax.rate / 100)
end
def discount_amount_with_tax=(amount)
self.discount_amount = amount.to_f / (1 + tax.rate / 100)
end
私のフォームでは、ユーザーは と の両方discount_amount
を入力できdiscount_amount_tax
ます。
= f.label :discount_amount
= f.text_field :discount_amount
= f.text_field :discount_amount_with_tax
フィールドを優先したいのですが、それは、他のフィールドが空でない限り考慮されてはならないことdiscount_amount_with_tax
を意味します。discount_amount
discount_amount_with_tax
私の問題は、フィールドに何も入れず、たとえば 10 をdiscount_amount
にdiscount_amount
すると、 が 0 に等しくなるということです。これは明らかに私が望んでいるものではありません。
どうすればこれを修正できますか?
どんな助けでも大歓迎です。