我有一个名为Tournament的模型,has_many
条目。 Tournament中有一个名为reset_rankings
的方法,它遍历所有条目并根据条目当前有多少个点更新每个条目的current_rank
字段。我在此遍历中更新的每个条目上调用entry.save
。
此方法似乎更新了内存中的条目,但是当我{I} reload
我正在使用的锦标赛时,current_rank
字段全部恢复到调用reset_rankings
之前的状态
我在调用tournament.save
后尝试拨打reset_rankings
,但仍然没有保留更改
我确信我做的事情很愚蠢,但是铁轨魔术并没有像我期望的那样发挥作用。
答案 0 :(得分:1)
当你调用entry.save时,你在检查返回值吗?如果为false,则由于某种原因阻止了保存,例如未通过验证。
或者将foo.save更改为foo.save!保存失败时引发错误。