未定义的方法`偏执狂?'为零:NilClass

时间:2014-04-09 21:43:09

标签: ruby-on-rails-3.2 acts-as-paranoid

我在gem 'paranoia', '~> 1.0'应用中使用rails 3.2.x。 安装的偏执狂版本是1.3.3

当我递归时,我收到了错误:true 我试过了

user.restore! recursive: true

User.find(user.id, recursive: true)

我得到同样的错误。

2 个答案:

答案 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"