2010-06-02 27 views
3

我將有大量的子類,所以想要將它們組織在一個名爲stream的子文件夾下。添加以下行到environment.rb文件,以便在子文件夾中的所有類會被加載:Rails:在模型中創建子文件夾?

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

我認爲這將解決其中按照約定的模型類的命名空間爲根據模塊的問題。然而,當我打電話叫流中的數據流文件夾中的類之一,我得到以下錯誤:

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

這裏的父模型和一個孩子:

class Stream 
end 

class EventStream < Stream 
end 

任何想法這個問題是什麼?

+0

嘗試此並獲得相同的錯誤:config.load_paths + =%W [#{RAILS_ROOT}/app/models/stream]。 – keruilin 2010-06-02 21:34:04

回答

-1

你可以發佈你的型號代碼嗎?父代碼和至少一個子模型的代碼。你打算做什麼像Stream & & Stream :: Client?

我不確定是否假設模型要繼承子類,或者您要爲每個模型的子類添加模型。只要知道模型不會嵌套在您的代碼中,因爲它們在文件系統中的位置,而不是類中所在的模塊,但是從您的初始文章中無法分辨出來。

+0

需要使用語法:Stream :: Client – keruilin 2010-06-04 12:10:57

+0

不要在一個答案內部探索,而是在對原始問題的評論中進行探究。 – Noz 2013-03-01 18:48:06