2011-05-02 158 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

相关问题