2011-05-02 198 views
29

我正在使用Ruby on Rails 3,我想處理名稱空間中的模型(類)名稱空間。也就是說,如果我有一個命名空間名爲NS1和名稱空間名爲NS2的「子名稱空間」,我想處理NS2中的模型(類)。在命名空間中處理名稱空間模型(類)

如果我跑支架

rails generate scaffold ns1/ns2/Article id:integer title:string 

它會生成以下模型文件:

models/ns1/ns2/article.rb file 
models/ns1/articles.rb 

models/ns1/articles.rb包含:

module Ns1::Articles 
    def self.table_name_prefix 
    'ns1_articles_' 
    end 
end 

什麼models/ns1/articles.rb文件?如何以及爲什麼我可以使用它?你有沒有建議使用它?

而且,一般來說,什麼是使用Ruby on Rails處理名稱空間中「組合」類的「最佳」方式?

回答

28

型號/ NS1/articles.rb

基本上設置該命名空間下的所有模型類的表名前綴。這就是它的用途。在那裏(在單個文件中)做更多的DRY'ish,而不是在該名稱空間下的每個模型類中設置前綴。

我不喜歡在我的模型中使用名稱空間。但是,您可以參考以下文章以更好地瞭解如何在模塊中使用名稱空間。

一些替代模型中

希望這有助於使用的命名空間。

+3

如果您想要一個名爲ns1的模型,該怎麼辦?那你怎麼辦呢? – picardo 2014-04-20 20:22:18

+0

models/ns1/ns1.rb – 2014-07-07 07:00:36

+1

爲什麼你不是命名空間模型的粉絲? – Lichtamberg 2016-12-02 11:39:45

相關問題