查询正在删除带有sinatra、mysql2和activerecord的WHERE子句

查询正在删除带有sinatra、mysql2和activerecord的WHERE子句,mysql,database,activerecord,sinatra,mysql2,Mysql,Database,Activerecord,Sinatra,Mysql2,我对删除WHERE子句的查询有一个奇怪的问题。以下是我正在使用的宝石: 西纳特拉(1.4.3) mysql2(0.4.1) activerecord(3.0.20) activerecord-mysql2-adapter(0.0.3) 这是一个正在发生的事情的例子。首先,我查询一条记录,然后更新它的一个属性。这将成功执行 IRB :> subscription = Subscription.last IRB :> subscription.times_billed = 7 IRB

我对删除WHERE子句的查询有一个奇怪的问题。以下是我正在使用的宝石:

  • 西纳特拉(1.4.3)
  • mysql2(0.4.1)
  • activerecord(3.0.20)
  • activerecord-mysql2-adapter(0.0.3)
这是一个正在发生的事情的例子。首先,我查询一条记录,然后更新它的一个属性。这将成功执行

IRB :> subscription = Subscription.last
IRB :> subscription.times_billed = 7
IRB :> subscription.save
但是,当我保存记录时,mysql通用查询日志会报告以下内容:

UPDATE `subscriptions` SET `times_billed` = 7
它缺少WHERE子句。查询应该类似于:

UPDATE `subscriptions` SET `times_billed` = 7 WHERE `id` = [ID]
这会导致更新表中的每一行,而不仅仅是所需的记录。堆栈中的某个地方,查询的格式不正确

我找不到其他关于发生这种事情的报道。以前有人遇到过这样的事情吗?如果我能提供更多信息,请告诉我