2009-04-07 7 views
12

활성 레코드 인스턴스를 삭제하려고 할 때 문제가 있습니다. A는 내가이 오류가 어디에서 오는 정말 확실하지 않다 다음과 같은 오류레일 : 활성 레코드에서 초기화되지 않은 상수 오류가 발생했습니다.

@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

귀하의 지침 모델을 찾을 수 없습니다. 당신이 정말로의 삭제 될 수있는 user_client의 삭제를 원하지 않는다면 당신의 UserClient 모델의 belongs_to :client 줄에서 :dependent => :destroy를 제거해야 등 ActiveRecord::Base 확장, 또한

확인이 적절라는 이름의 모델 디렉토리에의 확인 고객. 그것은 다른 방향이어야하며 Client 모델에 이미 설정되어있는 것 같습니다.

3

또한 파일 이름이 클래스 이름과 일치하는지 확인하십시오. 내 경우에는 내가

namespace/old_stats.rb 

Class NameSpace::MyStats 

을했고 나는

namespace/my_stats.rb 
로 변경 될 때까지 레일은 "초기화되지 않은 상수 오류"던지는에 보관