레일은 첫 번째 시도에서만 상수를 자동로드 할 수 없습니다.

응집력

내 Rails 4 앱에는 기본 모델이 있습니다 /app/models/badge.rb..

그럼, 배지에서 상속이의 말을하자 특정 배지의 다수가 GoldBadgeSilverBadge(실제로, 많은 등). 이러한 파일은 모두 /app/model/badge/<name>_badge.rb. 예 : /app/model/badge/gold_badge.rb.

GoldBadge의 클래스 선언은 다음과 같습니다.

class GoldBadge < Badge
  ...

그러나 Rails (또는 Ruby, 정말 잘 모르겠습니다) 자동 로더 는 첫 번째 시도에서만 이러한 파일을 찾는 데 문제가 있습니다. 그 의미는를 사용해야하는 페이지에 처음 액세스 할 때 GoldBadge예를 들어 다음 오류가 발생한다는 것입니다.

Unable to autoload constant Badge::GoldBadge, expected /path_to_my_rails_app/app/models/badge/gold_badge.rb to define it

클래스가 해당 파일에 정의되어 있기 때문에 이상합니다. 그러나 더 이상하게도 페이지를 새로 고치면 모든 것이 작동합니다. 클래스가 발견됩니다!

여러 유형의 배지를 참조하는 페이지에서 각 유형에 대해 한 번씩 페이지를 새로 고쳐야 작동합니다. 내가 사용하는 페이지가 있다면 예를 들어 GoldBadge, SilverBadge그리고 BronzeBadge, 나는 전에 작업 마지막 것, 각 배지 유형에 대해 한 번 표시되고 그 오류 페이지 3 회 새로 고침 것이다.

이것은 개발 모드에서 발생합니다. 내가 읽은 바에 따르면 이것은 프로덕션에서는 사라질 수 있지만 개발 모드에서는 여전히 매우 짜증납니다. 그것을 고칠 수있는 방법이 있습니까 (가급적 캐싱 클래스없이)?

펠릭스 보르 지크

app/models/badge폴더 와 같은 네임 스페이스 아래에두면 다음과 같이 클래스를 정의해야합니다.

class Badge::GoldBadge < Badge
  #...
end

자동로드하고 Badge::GoldBadge. 을 호출하여 액세스 GoldBadge하려면 app/models디렉토리 로 이동하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

첫 번째 시도에서만 SSL 연결을 설정할 수 없습니다.

분류에서Dev

멀티 스레딩을 할 때 첫 번째 스레드에서 한 번만 메시지를 보낼 수 있으며 그 후 첫 번째 스레드에서 메시지를 보낼 수 없습니다.

분류에서Dev

첫 번째 시도에서 붙여 넣기를 복사 할 수 없습니다.

분류에서Dev

첫 번째 자식 선택기가 작동하도록 할 수 없습니다.

분류에서Dev

VPN에서 ping은 첫 번째 패킷에 대해서만 작동하며 시스템간에 ssh를 사용할 수 없습니다.

분류에서Dev

jquery는 첫 번째 시도에서 iframe에 액세스 할 수 없습니다.

분류에서Dev

jquery는 첫 번째 시도에서 iframe에 액세스 할 수 없습니다.

분류에서Dev

jQuery Mobile에서 콤보 상자의 첫 번째 요소를 선택할 수 없습니다.

분류에서Dev

첫 번째 필드에 정렬 된 목록, 첫 번째 필드가 동일한 줄에서 두 번째 필드를 어떻게 결합 할 수 있습니까?

분류에서Dev

첫 번째 시도에서 Windows 7로 성공적으로 부팅 할 수 없습니다.

분류에서Dev

루프에서 작동 할 첫 번째 if 문을 가져올 수 없습니다.

분류에서Dev

설명은 첫 번째 입력 상자를 통해서만 입력 할 수 있습니다. 나머지는 작동하지 않습니다.

분류에서Dev

두 번째 활동에서 교체 한 후 첫 번째 활동을 재개 할 수 없습니다.

분류에서Dev

xml 변수에서 태그 아래의 첫 번째 레코드 만 선택할 수 있습니다.

분류에서Dev

ContextCompat 개체를 사용하여 getColor 메서드를 호출 할 수 없습니다. 첫 번째 매개 변수로 getContext ()를 전달할 수 없습니다.

분류에서Dev

React js에서 텍스트 상자의 첫 번째 값을 편집 할 수 없도록 만드는 방법은 무엇입니까?

분류에서Dev

첫 번째 인수로 파일을 열 수 없습니다.

분류에서Dev

PyQt4 : 첫 번째 코드를 작성할 때 대화 상자를 열 수 없습니다.

분류에서Dev

연결 목록에서 첫 번째 노드를 제외하고 노드를 제거 할 수 없습니다.

분류에서Dev

입력 반응 js에서 검색에서 첫 번째 문자를 제거 할 수 없습니다.

분류에서Dev

첫 번째 div 블록에는 제거 할 수없는 이상한 스타일이 있습니다.

분류에서Dev

Python matplotlib에 표시 할 첫 번째 막대를 가져올 수 없습니다.

분류에서Dev

Wordpress 사이트에서 매우 긴 시간을 첫 번째 바이트로 해결할 수 없습니다.

분류에서Dev

33 개 요소의이 노드 목록에서 첫 번째 자식을 선택할 수 없습니다.

분류에서Dev

버튼을 동적으로 만들고 제거합니다. 첫 번째 제거는 잘되지만 두 번째는 레이아웃에서 버튼 공간없이 ID 만 제거 할 수 있습니다.

분류에서Dev

Nodejs Fetch API : 첫 번째 인증서를 확인할 수 없습니다.

분류에서Dev

첫 번째 예외 : RPC 서버를 사용할 수 없습니다.

분류에서Dev

ContentStringFormat의 {0}을 첫 번째 문자로 사용할 수 없습니다.

분류에서Dev

첫 번째 시도에서 Centos에서 새로 생성 된 사용자로 ssh 할 수 없음

Related 관련 기사

  1. 1

    첫 번째 시도에서만 SSL 연결을 설정할 수 없습니다.

  2. 2

    멀티 스레딩을 할 때 첫 번째 스레드에서 한 번만 메시지를 보낼 수 있으며 그 후 첫 번째 스레드에서 메시지를 보낼 수 없습니다.

  3. 3

    첫 번째 시도에서 붙여 넣기를 복사 할 수 없습니다.

  4. 4

    첫 번째 자식 선택기가 작동하도록 할 수 없습니다.

  5. 5

    VPN에서 ping은 첫 번째 패킷에 대해서만 작동하며 시스템간에 ssh를 사용할 수 없습니다.

  6. 6

    jquery는 첫 번째 시도에서 iframe에 액세스 할 수 없습니다.

  7. 7

    jquery는 첫 번째 시도에서 iframe에 액세스 할 수 없습니다.

  8. 8

    jQuery Mobile에서 콤보 상자의 첫 번째 요소를 선택할 수 없습니다.

  9. 9

    첫 번째 필드에 정렬 된 목록, 첫 번째 필드가 동일한 줄에서 두 번째 필드를 어떻게 결합 할 수 있습니까?

  10. 10

    첫 번째 시도에서 Windows 7로 성공적으로 부팅 할 수 없습니다.

  11. 11

    루프에서 작동 할 첫 번째 if 문을 가져올 수 없습니다.

  12. 12

    설명은 첫 번째 입력 상자를 통해서만 입력 할 수 있습니다. 나머지는 작동하지 않습니다.

  13. 13

    두 번째 활동에서 교체 한 후 첫 번째 활동을 재개 할 수 없습니다.

  14. 14

    xml 변수에서 태그 아래의 첫 번째 레코드 만 선택할 수 있습니다.

  15. 15

    ContextCompat 개체를 사용하여 getColor 메서드를 호출 할 수 없습니다. 첫 번째 매개 변수로 getContext ()를 전달할 수 없습니다.

  16. 16

    React js에서 텍스트 상자의 첫 번째 값을 편집 할 수 없도록 만드는 방법은 무엇입니까?

  17. 17

    첫 번째 인수로 파일을 열 수 없습니다.

  18. 18

    PyQt4 : 첫 번째 코드를 작성할 때 대화 상자를 열 수 없습니다.

  19. 19

    연결 목록에서 첫 번째 노드를 제외하고 노드를 제거 할 수 없습니다.

  20. 20

    입력 반응 js에서 검색에서 첫 번째 문자를 제거 할 수 없습니다.

  21. 21

    첫 번째 div 블록에는 제거 할 수없는 이상한 스타일이 있습니다.

  22. 22

    Python matplotlib에 표시 할 첫 번째 막대를 가져올 수 없습니다.

  23. 23

    Wordpress 사이트에서 매우 긴 시간을 첫 번째 바이트로 해결할 수 없습니다.

  24. 24

    33 개 요소의이 노드 목록에서 첫 번째 자식을 선택할 수 없습니다.

  25. 25

    버튼을 동적으로 만들고 제거합니다. 첫 번째 제거는 잘되지만 두 번째는 레이아웃에서 버튼 공간없이 ID 만 제거 할 수 있습니다.

  26. 26

    Nodejs Fetch API : 첫 번째 인증서를 확인할 수 없습니다.

  27. 27

    첫 번째 예외 : RPC 서버를 사용할 수 없습니다.

  28. 28

    ContentStringFormat의 {0}을 첫 번째 문자로 사용할 수 없습니다.

  29. 29

    첫 번째 시도에서 Centos에서 새로 생성 된 사용자로 ssh 할 수 없음

뜨겁다태그

보관