2009-04-07 11 views
12

アクティブなレコードインスタンスを破棄しようとすると問題が発生します。Rails:アクティブレコードの初期化されていない定数エラーが発生しました。

これは、クライアントのインスタンスで破棄を実行する場合、私は本当にこのエラーがどこから来ていることを確認していない、次のエラー

@dead_man = Client.find(params[:id]) 
@dead_man.destroy => uninitialized constant UserClient::Instruction 

を与えられています以下のAR

class Client < ActiveRecord::Base 
    has_many :phone_numbers, :dependent => :destroy 
    has_many :email_addresses, :dependent => :destroy 
    has_many :user_clients , :dependent => :destroy 
    has_many :users, :through => :user_clients 
end 

class UserClient < ActiveRecord::Base 
belongs_to :user 
belongs_to :client , :dependent => :destroy 
has_many :instructions, :dependent => :destroy 
end 

を必要とします。どんな助けでも大歓迎です!

答えて

20

あなたの命令モデルが見つかりません。 、それは適切な名前、モデルのディレクトリにあることを確認しますActiveRecord::Baseを拡張するなど

あなたが本当にの削除をもたらすことがuser_clientの削除を希望しない限り、また、あなたは、UserClientモデルにbelongs_to :clientラインから:dependent => :destroyを削除する必要がありますクライアント。これは逆のはずのように聞こえますが、これは既にClientモデルに設定されています。

3

また、ファイル名がクラス名と一致することを確認してください。私の場合は、

namespace/old_stats.rb 

Class NameSpace::MyStats 

を持っていたと私は

namespace/my_stats.rb 
にそれを変更するまで、Railsは、 "初期化されていない一定のエラーを" 投げに保管しました
関連する問題