単一テーブル継承 (STI) と、継承されたモデルのデフォルト値の初期化について助けが必要です。
たとえば、プレイヤーから継承する雑食、草食動物、および草食動物のモデルがあり、プレイヤーはユーザーから継承します。
STI を介して、すべてのモデルに lvl、xp、hp、ap、および max_xp、max_hp、および max_ap があります。
データベース経由では、すべての値のデフォルトは 0 または 1 です。 (:users、:xp、:integer、デフォルト: 0)
しかし、私がやろうとしているのは、各クラスのインスタンスに対して異なる値を初期化することです. たとえば、新しい肉食動物の各オブジェクトは LVL の設定値を持ちます: 1 XP: 0/50、HP: 5/5、AP: 3/3、草食動物は LVL:1 XP: 0/50、HP: 3/3 になります。 , AP: 5/5, 草食動物 LVL: 1 XP: 0/50, AP/HP: 4/4.
また、xp 値が max_xp を超えると、lvl がインクリメントされます。何かのようなもの
when xp > max_hp
lvl += 1
end
また
xp = 70
lvl = case xp
when 0..40 then 1
when 41..60 then 2
when 61..70 then 3
when 71..100 then 4
else "Overpowered"
end
where do I put this?
両方の問題にどのようにアプローチできますか?
このようなものが値の初期化に役立つと思いました
def initialize
@xp = 100
end
しかし、それは機能せず、代わりに @xp を nil に設定しました。どんな助けでも大歓迎です!