2011-09-10 4 views
5

방금 ​​Heroku에 대한 푸시를 수행하고 rails_admin을 통해 모델을 추가하여 테스트를 시도했습니다. 내가 할 때 일반적인 오류 페이지가 있습니다. 나는 로그에 가서이 메시지주의 :Heroku 콘솔에서 새 모델을 만들 때 NoMethodError (nil : NilClass에 대해 정의되지 않은 메서드 'name')를 얻습니다.

NoMethodError (정의되지 않은 메서드`이름 '무기 호에 대한 : NilClass)

그때 Heroku가 콘솔 열을 수동 모델을 추가하는 시도하고 저장하려고 같은 메시지를 받았습니다 .

NoMethodError : 전무에 대한 '방법'의 이름을 정의되지 않은 : 여기

NilClass

가 모델 :

class Board < ActiveRecord::Base 
    attr_accessible :name, :description 

    validates :name, :presence => true 
    validates :description, :presence => true 
    validates_uniqueness_of :name, :case_sensitive => false 

    has_many :subjects 
    scope :hidden, where(:is_hidden => true) 
    scope :visible, where(:is_hidden => false) 
end 

이 일어나고가 무엇인지 어떤 아이디어 - 나보고 시작하는 방법은?

마이그레이션을 수행하여 콘솔에서 작업 할 때 모델을 인식하고 속성을 볼 수있었습니다.

감사합니다.

답변

4

변경 사항을 푸시하고 db : migrate를 실행할 때 지연이나 지연이 있는지 확실하지 않습니다.하지만 몇 시간을 보내고 돌아 왔을 때 rake db : migrate가 다시 나타납니다. 아무것도하지 않고 모델을 다시 만들려고했는데 문제없이 작동했습니다.

그래서 모두가 지금은 잘 보이지만, 난 그냥 Heroku가 함께 테스트하기 전에 더 이상 기다릴 필요가 말할 수 없다 - 또는 마이그레이션을 실행 여부를 다시 실제로 뭔가를했다.

+1

아무런 이유없이 'NoMethodError (nil : NilClass에 대해 정의되지 않은 메서드'relation') 오류가 발생했습니다. 나는 마지막 마이그레이션이 성공적으로 업데이트되었는지를보기 위해'rake db : migrate'를 다시 실행하는 해결책을 시도했지만 아무런 의미가 없으며 마지막 실행 마이그레이션에는 아무런 문제가 없었습니다. 그러나 그 잘못은 사라지지 않았다. 파일 중 하나에게 Heroku에 응용 프로그램 I 방금 추가 공간을 다시 배포하려면, 그것을 최선을 다하고에게 Heroku에 그것을 밀어 - 실 거예요 그 '모든 것 - - 날짜'말해 둬. 그리고 재배포 오류가 사라진 후. 이상한!!! – Zeeshan

+1

나는 오늘 다시 한번 이것에 물었다. 그래서 heroku 앱을 다시 시작하는 것이 트릭을 만들었습니다. 하지만 지금은 위의 코멘트에서 더러운 방식으로 할 필요가 없었습니다. 이제'heroku restart' 명령으로 heroku 앱을 다시 시작할 수 있습니다. – Zeeshan

20

이 호에 두 번 물린 후, 나는 왜 heroku 지원팀에게 그런 일이 일어 났는지 질문했습니다. 그리고 그들은 대답

"갈퀴 DB를 실행 한 후 : 스키마 정보가 생산 모드로 부팅하는 동안 캐시되기 때문에 그것은, 스키마 변경 사항을 적용 할 수 있도록 응용 프로그램을 다시 시작해야 마이그레이션 할 수 있습니다."

새로운 마이그레이션을 실행 한 후 'heroku restart'을 실행하면 항상 heroku 앱을 다시 시작해야합니다.

관련 문제