0

我需要有关以下错误的帮助:

未定义的方法“键?” 对于零:NilClass

它发生在我为我的表添加了一些数据关联之后:

    class Crew < ActiveRecord::Base
        has_many :Peme, :foreign_key => pemeid, :dependent => destroy
        has_many :Training, :foreign_key => trgid, :dependent => destroy
        has_many :Visa, :foreign_key => visaid, :dependent => destroy
        has_many :Contract, :foreign_key => contid, :dependent => destroy
        has_many :FlagEndorsement, :foreign_key => flgendoid, :dependent => destroy
        has_many :Seminar, :foreign_key => semid, :dependent => destroy
    end

   Class Contract < ActiveRecord::Base
       attr_accessible :contcost, :contdate, :contid, :contremarks, :conttype, :crewid
       belongs_to :Crew, :foreign_key => "crewid"
   end
   class FlagEndorsement < ActiveRecord::Base
       attr_accessible :crewid, :flgendocost, :flgendodate, :flgendoid, :flgendoremarks, :flgendotype
        belongs_to :Crew, :foreign_key => "crewid"
  end
  class Peme < ActiveRecord::Base
       attr_accessible :crewid, :pemecost, :pemedate, :pemeid, :pemeremarks, :pemetype
       belongs_to :Crew, :foreign_key => "crewid"
  end
 Class Seminar < ActiveRecord::Base
       attr_accessible :crewid, :semcost, :semdate, :semid, :semremarks
       belongs_to :Crew, :foreign_key => "crewid"
 end
 Class Training < ActiveRecord::Base
      attr_accessible :crewid, :trgcost, :trgdate, :trgid, :trgremarks, :trgtype
      belongs_to :Crew, :foreign_key => "crewid"
 end
 class Visa < ActiveRecord::Base
   attr_accessible :crewid, :visacost, :visadate, :visaid, :visaremarks, :visatype
   belongs_to :Crew, :foreign_key => "crewid"
end

我想成为peme,培训,签证,flgendorsements,研讨会成为船员的依赖但我该怎么办?

4

1 回答 1

1

1 . 让你的大写/小写排序。has_many必须后跟下划线形式的复数关联名称,如下所示:

has_many :flag_endorsements

2 . 让你的符号正确:

    :foreign_key => pemeid, :dependent => destroy

这而不是设置:foreign_keyto:pemeid:dependentto:destroy将寻找局部变量的值pemeiddependent. 如果局部变量不存在,它将尝试调用pemeiddependent存在的方法。第二次你在某处为完全不同的目的定义这些方法,你就陷入了调试地狱。

3 . 让您的命名约定正确。crewid是属性/列的可怕名称。肯定是crew_id。您指定的每个属性/列也是如此。请阅读一些关于 Rails 的基本教程,每个人都明确表示遵循约定有多好,以及如何围绕约定构建 Rails,如果您不遵循它们,您的 Rails 内容将根本无法工作。

清理完代码后 - 提供完整的异常跟踪(如果仍然有问题),然后有人可能会帮助你。

于 2012-07-09T07:23:27.953 回答