数据库中的读取不一致

时间:2014-05-09 22:10:54

标签: ruby-on-rails ruby activerecord

我看到不一致的行为,我想知道我在这里做错了什么。

我有subscription个对象,其状态由其cyclecon属性定义,即整数。 months_passed会返回一个整数,该整数计算订阅start_dateTime.current之间经过的完整月数。

  def update_state
    update_cycle
    update_con
    self.save
  end

  def update_cycle
    self.cycle = if months_passed > 0
      (months_passed - 1)/3 + 1
    else
      0
    end
  end

  def update_con
    self.con = if months_passed > 0
      (months_passed - 1) % 3 + 1
    else
      0
    end
  end

  def in_con1?
    update_state
    con == 1
  end

然而,当我快速连续呼叫in_con1?时,我会不一致地变得正确或错误。

我需要重新加载对象吗?是陈旧的吗?

1 个答案:

答案 0 :(得分:0)

对不起,伙计们。我找到了罪魁祸首。与不一致的数据库读取无关。就在months_passed被召唤的时候,就在我预料到的前一个小时。