2010-06-02 2 views
3

나는 많은 서브 클래스를 가질 것이므로 스트림이라는 하위 폴더 아래에 하위 클래스를 구성하려고합니다. 하위 폴더에있는 모든 클래스가로드 될 수 있도록 나는 environment.rb에 다음 행을 추가 : 레일 : 모델에 하위 폴더를 만드시겠습니까?

  Rails::Initializer.run do |config| 
... 
      config.load_paths += Dir["#{RAILS_ROOT}/app/models/*"].find_all { |f| File.stat(f).directory? } 
... 
    end 

나는이 규칙에 따라 모델 클래스가 따라 모듈에 네임 스페이스되는 문제를 해결 거라 생각 했어요. 그러나, 나는 스트림 폴더에 스트림이라는 클래스 중 하나를 호출하려고, 나는 다음과 같은 오류 얻을 :

class Stream 
end 

class EventStream < Stream 
end 

어떤 생각 : 여기

NoMethodError: undefined method `new' for Stream:Module 
    from (irb):28 
    from /usr/local/bin/irb:12:in `<main>' 

을 상위 모델과 한 아이의 무슨 문제인가?

+0

시도했지만 동일한 오류가 발생했습니다 : config.load_paths + = % W [# {RAILS_ROOT}/app/models/stream]. – keruilin

답변

-1

모델 코드를 게시 할 수 있습니까? 부모 및 적어도 하나의 자식 모델에 대한 코드입니다. Stream과 같은 것을하려고 계획하고 있습니까 & & Stream :: Client?

모델이 서브 클래스를 상속한다고 가정하고 있거나 각 모델의 서브 클래스에 추가하려고하는지 확실하지 않습니다. 모델이 클래스에 포함 된 모듈보다는 파일 시스템에 배치 되었기 때문에 모델에 중첩되지 않는다는 것을 알아 두십시오. 처음 게시물에서는 알 수 없습니다.

+0

구문을 사용해야 함 : Stream :: Client – keruilin

+0

답변을 조사하지 마십시오. 원래 질문에 주석을 삽입하십시오. – Noz