小问题......这是为了解决什么是简单的黑客攻击,不修复似乎很愚蠢!
如果有两个来自 ActiveRecord 的同一个类的项目,我该如何交换它们的主键?以下代码有效,但请看一下!
class Item < ActiveRecord::Base
self.primary_keys = :p_key
def self.swap( a, b )
return if a.nil? or a.nil?
# fix this hack!
temp_1 = a.p_key
a.p_key = "999999" #these keys cannot ever occur in our software... promise!
a.p_key.save!
a.p_key = b.p_key
b.p_key = temp_2
b.save!
a.save!
end
end
啊! 太恶心了!
以下代码导致错误:
a.p_key, b.p_key = b.p_key, a.p_key
a.save!
b.save!