我的代码是:
# User - typical class of ActiveRecord::Base
user1 = User.first
user2 = User.last
user2.save
# return true
user1.save
(1.2ms) BEGIN
(1.4ms) ROLLBACK
NoMethodError: undefined method `delete_if' for #<String:0x000000073a9790>
user1.errors.count
# 0 errors returned!
我不能在本地重现这个错误,只能在服务器上。
它是什么?
如何获得更多关于这个神奇bug的信息并修复它?
补充道:这似乎是与设计gem的问题,因为这个解决方案是可能的:
user1.tokens = nil
user.save
# return true
您试过使用"保存"吗?而不是"save" ?它将在AR提交时澄清错误。
试着比较两个对象,看看user1和user2的记录有什么不同。
如果这似乎是一个设计问题,您可以解压缩gem并搜索"delete_if"用于调试。