У меня есть три модели: Игра, Команда и Игрок. Игрок принадлежит команде, а команда принадлежит игре. Нет прямой связи между игрой и игроком. У игрока есть метод, такой как:
def game
@game || team.game
end
И у Game есть имя поля перечисления "field".
class Game < ApplicationRecord
enum field: { nothing: 0, metal: 1, tree: 2, water: 3, fire: 4, earth: 5 }
У игрока есть метод summon, он должен изменить поле игры:
def summon( value )
game.field = value.to_sym
game.save!
save!
end
Я проверил byebug. «Поле» игры - это значение после присвоения. Но «поле» становится нулевым после сохранения! Что произошло? Мой игровой метод внутри Player куда-нибудь перезагрузит @game?