2012-07-11 2 views
0

레일 3.2/git에서 이상한 버그가 발생했습니다.레일/git에서 이상한 버그가 발생했습니다

개발 모드에서 클래스는 요청 (컨트롤러, 모델, 헬퍼)간에 다시로드되지 않지만보기가 작동합니다.

오랫동안 수정되지 않은 구성 (application.rb, development.rb ...)으로 검색 한 결과, 변경 사항을 표시하려면 Thin을 다시로드해야합니다.

그래서 새 분기를 만들고 커밋으로 되돌리기로 결정했습니다. (나는 나쁜 업데이트/통합 젬을 생각하고있었습니다.) 코드가 마지막 커밋까지 제대로 다시로드됩니다!

마스터 분기로 돌아 가면 코드가 변경되지 않아도 요청간에 코드가 제대로 다시로드됩니다.

Ruby 1.9.3p194 (rvm), postgresql 9.1.4, git 1.7.11.1, ext4 FS (UUID = ac74249f-84de-40d0-8b14-eb494983cfda/home ext4 기본값, noatime)에서 실행 중입니다. , data = writeback, barrier = 0, nobh, errors = remount-ro 0 1)

당신은 어떻게 생각합니까?


이 버그는 다시 발생하지 않으며 재생산이 매우 어렵습니다. 나는 불확실한 대답을 받아 들일 수 없다.

+2

문제를 디버깅하기에 충분한 레일을 모르지만 "커밋에 의한 커밋 되돌리기"는 저를 슬프게 만듭니다. [Look up] (http://git-scm.com/book/en/Git-Tools-Debugging-with-Git)'git bisect'. [그것은 당신의 인생을 바꿀 것입니다.] (http://git-scm.com/book/en/Git-Tools-Debugging-with-Git) – Christopher

+0

멋진 팁, 감사합니다! – m4tm4t

답변

2

귀하의 문제는 GIT와 관련이 없으며 레일 만 있습니다.

은 설정/환경/development.rb에 넣어보십시오 :의

config.cache_classes = false 

요청 사이 (예 : 모델이나 컨트롤러와 같은) 클래스를 다시로드를 알려줍니다 구성을 레일.

그냥 확실하게 실행 레일 서버 :

+0

100 %에서 이것은 환경 설정에 영향을주지 않았고 새로운 git 브랜치를 생성 한 후에 문제가 사라지기 때문에 이것은 레일 문제가 아님을 확신합니다. 그리고 문제가 진행되는 동안 환경은 잘 발달되어있었습니다. – m4tm4t

0

RAILS_ENV=development rails s은 아마도 문제가 fstab에있는 noatime 옵션입니다. 타임 스탬프에 손을 대지 않으면 파일이 변경되었습니다. 옵션을 제거하려고 할 수 있습니다.

관련 문제