0

特定のパーセンテージ値が列に格納されている従来のデータベースを使用していますがDECIMAL、ユーザーはデータを整数として入力および読み取ります。

したがって、DBに含まれているとしましょう...

contracts
---------
funded_percent DECIMAL 10,5

そのテーブルの ActiveRecord モデルに「ゲッター」と「セッター」を追加して、読み取り時に 100 を掛け、保存時に 100 で割りたいと思います。

動機は、ビュー コードで整数のみを扱うようにすることです。

それを行う正しい方法がわかりません。


ああ、一部の値は小数点以下 3 桁を超えています。

したがって、このメソッドでは、格納された値「0.036」を表示値「4%」に丸める必要があります。

4

3 に答える 3

1

ここでは、整数で取引するために属性を「資金提供済み」と呼んでいます

def funded=(other)
  self.funded_percent = other / 100
end

def funded
  funded_percent * 100
end
于 2013-07-02T22:45:15.847 に答える
1

「0.036」~表示値「4%」。

.roundこれに使用できます

def funded
  ( funded_percent * 100 ).round
end
于 2013-07-03T05:49:42.913 に答える
0

次のことを試してください。

def funded_percent=(value)
  write_attribute :funded_percent, value/100 if value.present?
end

def funded_percent
  (read_attribute :funded_percent) * 100
end

次に、ビューで使用できますfunded_percent.ceil

于 2013-07-02T23:20:13.520 に答える