[Rails] is not a module이 나타날 때

2666 단어 RailsRubytech
rails console에서 Require class에서 오류가 발생했습니다.
비망록으로 정리하다.

이벤트


나는 상업 논리를class에 썼다.
namespace를 제공하기 위해 모듈에 끼워 넣습니다.
# lib/tasks/ranking/point_aggregation.rb

module Ranking
  class PointAggregation
    ...
  end
end
콘솔에서 이걸 테스트하고 싶어서 리퀴즈를 해봤어요
다음 오류가 발생했습니다.
[1] pry(main)> require 'ranking/point_aggregation'
TypeError: Ranking is not a module
랭킹은 모듈이 아니에요, 이런 오류인 것 같아요.

까닭

Ranking 이런 모델이 존재하지만 모듈 이름을 사용했다.
랭킹 모형을 만들면 랭킹이라는 상수가 존재한다.
이미 존재하지만 module Ranking로 재정의를 시도하여 오류가 발생했습니다.

해결책


module 이름과 폴더 이름이 변경되었습니다.
※ 다음은 module 명칭 변경 시 class 명칭 변경
# lib/tasks/ranking_point/aggregation.rb

module RankingPoint
  class Aggregation
    ...
  end
end
용 콘솔 테스트
[1] pry(main)> require 'ranking_point/aggregation'
true
잘 끝냈습니다!

좋은 웹페이지 즐겨찾기