2010-12-22 3 views
1

이상한 문제가 있습니다. 개발 중에이 문제는 존재하지 않지만 프로덕션 레이크에서 나에게이 오류 메시지를 던졌습니다. "초기화되지 않은 상수 프로그램"생산에서 일정하지 않은 레일 초기화

"프로그램"은 활성 레코드 모델이며 스키마 파일에 있습니다. app/model 폴더에 있습니다.

다음과 같이 레이크 임포트를 실행합니다. xml RAILS_ENV = production. 무엇이 문제 일 수 있습니까? 프로그램 = Program.find (: 제 : 조건 => [ '? programident ='방송 [ 'PROGRAM'] [ 'PROGRAMME_ID'])

이하 전체 스택 트레이스

rake import:xml RAILS_ENV=production --trace 
(in /usr/mobloom/www/htdocs/remindertest) 
** Invoke import:xml (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute import:xml 
rake aborted! 
uninitialized constant Program 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing' 
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:92:in `const_missing' 
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:18 
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:9:in `each' 
/usr/mobloom/www/htdocs/remindertest/lib/tasks/import_assets.rake:9 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 
/usr/bin/rake:19:in `load' 
/usr/bin/rake:19 

라인 18은

+0

주세요보기? –

+0

레이크 작업은 무엇입니까? 여기에 넣을 수 있습니까? – shingara

답변

-1

당신은 아마도 당신의 작업을 환경에 의존하는 것을 잊어 버렸을 것입니다.

task :xml => :environment do 
    ...code here... 
end 

EDITED! 아마도 옳은 대답은 열정적 인로드로 응답을 보지 않았을 것입니다.

+0

-1 왜냐하면 게시 된 로그를 보면 환경이로드되어 있다는 것을 알 수 있기 때문입니다. – David

+0

예, 내가 내 글을 편집하고 자신을 업로딩 한 이유를 알고 있습니다. 내 대답을 삭제하고 나 자신을 downvote 하시겠습니까? –

+0

답변 주셔서 감사합니다,하지만 데이비드에 의해 명시된 바와 같이, 환경이로드되고 있습니다 –

4

require 'app/models/program' 

을 시도하거나 당신은

Rails.application.eager_load! 

레이크 열망 부하 모델을하지 않는 모델의 대부분을 필요로하는 경우.

우리가 스택 트레이스를 볼 수 여기에 좋은 설명 Rails 3 rake task can't find model in production

+0

이것은 레일 3이 아니지만 2.3.8이며 이것은 개발 환경이 아닌 환경에서의 문제 일뿐입니다 –

관련 문제