【问题标题】:can't dup NilClass - Error无法复制 NilClass - 错误
【发布时间】:2010-07-19 06:17:56
【问题描述】:

我已经陷入这个错误很长一段时间了,而且已经走到了死胡同。

我得到这个完全没有帮助的错误

can't dup NilClass

情况就是这样。

我有一个班级与另一个班级有关系。说

 class Parent
 end

 class Child < Parent
    unloadable
     :has_many :parents, :foreign_key => "child"
 end

第一次访问时不会发生错误。它在第二次访问孩子时发生。

究竟是什么导致了这个错误,有解决办法吗?

我提到了following link,但它没有帮助

更新

我找到this

但它再次暗示了同样的事情。但我的库中有一个模块。但它与模型无关。

【问题讨论】:

    标签: ruby-on-rails ruby dup


    【解决方案1】:

    为什么将 Child 标记为可卸载?这有充分的理由吗?如果没有,我会删除。

    Rails API 表示“每次清除依赖项时都会删除可卸载的常量。”

    改成以下是否会出现错误:

    class Child < Parent
      has_many :parents, :foreign_key => "child"
    end
    

    而且,我可能越界了,但这似乎更标准:

    class Child
      belongs_to :parent
    end
    
    class Parent
      has_many :children, :dependent=>:destroy
    end
    

    【讨论】:

    • rails.rubyonrails.org/classes/ActiveRecord/Associations/… 说在使用 :has_many 时不要使用 :destroy。?
    • 我相信这意味着没有“belongs_to :parent, :dependent=>:destroy”——在这种情况下,如果父母有 4 个孩子,而你摧毁了一个孩子,那么孩子并且父母将被摧毁,但其他 3 个孩子仍然是孤儿。
    【解决方案2】:

    这是地下基础设施的错误。它可能是由非常基本的语法错误引起的。

    所以我建议你确保所有配置文件都存在(尤其是配置文件夹,那些 yaml 文件)

    就我而言,我通过添加 config/application.yml(这是一个配置文件)解决了这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多