处理命名空间中的命名空间模型(类)

时间:2011-05-02 01:05:52

标签: ruby-on-rails ruby ruby-on-rails-3 class namespaces

我正在使用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处理名称空间中“组合”类的“最佳”方法是什么?

1 个答案:

答案 0 :(得分:29)

  

模型/ NS1 / articles.rb

基本上是为该命名空间下的所有模型类设置表名前缀。这是它的用途。在那里(在单个文件中)做更多的DRY',而不是在该命名空间下的每个模型类中设置前缀。

我不是在我的模型中使用命名空间的忠实粉丝。但是,您可以参考以下文章以更好地理解在模块中使用命名空间。

在模型中使用名称空间的一些替代方法

希望这有帮助。