Posted at

Railsで変更不可な導出カラムを設定する

More than 5 years have passed since last update.

例えば、こんなモデル

Circle:円形

- radius: 半径
- square: 面積 # このカラムは半径から導出したいので、直接変更できないようにしたい

class Circle < ActiveRecord::Base

def radius=(radius)
super
self[:square] = radius*radius*Math::PI
end

def square=(square)
end
end


ポイント


  • squareのセッターメソッドを無効化

  • radiusのセッターメソッドでsquareを計算

  • squareにアクセスするにはself[:square]を用いる