[Rails] is not a module이 나타날 때
비망록으로 정리하다.
이벤트
나는 상업 논리를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
잘 끝냈습니다!
Reference
이 문제에 관하여([Rails] is not a module이 나타날 때), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/eitches/articles/2020-0113-is-not-a-module텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)