0

次のエラーについて助けが必要です。

未定義のメソッド「キー?」nil: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

ペメ、研修、ビザ、資格取得、乗務員の扶養になるセミナーをしたいのですが、どうすればいいですか?

4

1 に答える 1

1

1 . 大文字/小文字を並べ替えます。次のように、複数形の関連付け名をアンダースコア形式で続けるhas_many必要があります。

has_many :flag_endorsements

2 . シンボルを正しく取得する:

    :foreign_key => pemeid, :dependent => destroy

:foreign_keyこれは、 to:pemeidおよび:dependenttoに設定する代わりに、ローカル変数and:destroyの値を探します。ローカル変数が存在しない場合、メソッドを呼び出そうとしますが、それも存在しません。そして、まったく別の目的でこれらのメソッドをどこかに定義すると、デバッグ地獄になります。pemeiddependentpemeiddependent

3 . 命名規則を正しく使用してください。crewid属性/列のひどい名前です。である必要がありますcrew_id。指定したすべての属性/列についても同様です。Rails に関するいくつかの基本的なチュートリアルを読んでください。ここでは、規則に従うことがいかに優れているか、規則に沿って Rails がどのように構築されているかを誰もが明確に述べています。

コードのクリーンアップが完了したら、完全な例外トレースを提供してください (何かがまだ壊れている場合)。

于 2012-07-09T07:23:27.953 に答える