我在gem 'paranoia', '~> 1.0'
应用中使用rails 3.2.x
。
安装的偏执狂版本是1.3.3
当我递归时,我收到了错误:true 我试过了
user.restore! recursive: true
和
User.find(user.id, recursive: true)
我得到同样的错误。
答案 0 :(得分:1)
它看起来像一个偏执狂宝石的错误,在以后的版本中修复。当关联为零时,它会引发此错误。
您可以比较这里版本之间的相关代码
您的版本:https://github.com/radar/paranoia/blob/v1.3.3/lib/paranoia.rb#LC89
最新消息:https://github.com/radar/paranoia/blob/rails4/lib/paranoia.rb#LC107
基本上他们在最新版本中进行空检查。
destroyed_associations.each do |association|
association_data = send(association.name)
unless association_data.nil? #this condition is missing in your version
您可以修补它或移至最新版本
答案 1 :(得分:0)
@RodM团队已将补丁移至他们的回购但尚未发布。
使用他们的git repo作为你的宝石源,而不是使用RubyGems。
添加Gemfile
gem "paranoia", :github => "radar/paranoia", :branch => "rails3"