首页 > 解决方案 > 更新枚举字段后保存模型不成功

问题描述

我有三个模型,游戏、团队和玩家。Player 属于 Team,Team 属于 Game。游戏和玩家之间没有直接关系。Player 有一个类似的方法:

  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 }

玩家有一个方法召唤,它应该改变游戏的字段:

  def summon( value )
    game.field = value.to_sym
    game.save!
    save!
  end

我检查了 byebug。游戏的“字段”是赋值后的值。但是保存后“字段”变成了nil!发生了什么?我在 Player 中的游戏方法会在某处重新加载 @game 吗?

标签: ruby-on-railsruby-on-rails-5

解决方案


推荐阅读