2017-07-04 49 views
0

我已經創建了一個「服務」目錄在應用/我創建了一些類(服務)。現在,它看起來是這樣的:RoR autoload子目錄

-app 
    -services 
     -class1 
     -class2 
     -class3 
     -class4 

現在,我已經在配置中添加應用程序/服務/ spring.rb

%w(
    .ruby-version 
    .rbenv-vars 
    tmp/restart.txt 
    tmp/caching-dev.txt 
    app/services 
    app/errors 
).each { |path| Spring.watch(path) } 

所以我在服務類被加載。

但現在,我想這樣做:

-app 
    -services 
     -dir1 
     -class1 
     -class2 
     -dir2 
     -class3 
     -class4 

我得到錯誤:

未初始化的常量TransactionService ::的AuthorizeRequest

如何自動加載一個目錄和子目錄?

回答

1

Rails嘗試使用dirname &文件名來猜測命名空間。所以,有一個TransactionService ::的AuthorizeRequest類的名字,你應該有確切的結構如下:

app 
- services 
-- transaction_service 
--- authorize_request.rb 

你的類要高度重視的樣子:

module TransactionService 
    class AuthorizeRequest 
    end 
end