モデルのステータスを実装する際に問題が発生しています。これは恐らく誤った設計によるものです。ステータスモデルのデザインパターン
ステータスがあるモデルがあります。モデルのインスタンスは複数あり、定義済みのステータスはわずかです(作成、更新、取得など)。個々のステータスごとに、モデルの計算ロジックがいくつかあります。例えば。 model.cost()
は、ステータスごとに異なって計算されます。
モデルを保存するときにActiveRecordが自動的に正しいmodel_status_id
を設定したいと思っています。
model.status = StatusModel.retrieved
と私は、このデータベースにモデルの行の状態を保存する必要があり
case status
when renewed
# ...
when retrieved
# ..
end
思考は、私が今持っているものです:私はこのような何かを行うことが理想的な状況で考えます:
ModelStatus < ActiveRecord::Base
has_many :models
Model < ActiveRecord::Base
belongs_to :model_status
しかし、これは私にコードで多くの問題を与えています。誰かがこのために良いアイデアやパターンを持っていますか?
ステータスが事前定義されている場合は、DBではなくコードの定数として保存するだけでは不十分ですか? – Olly