我正在使用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处理名称空间中“组合”类的“最佳”方法是什么?
答案 0 :(得分:29)
模型/ NS1 / articles.rb
基本上是为该命名空间下的所有模型类设置表名前缀。这是它的用途。在那里(在单个文件中)做更多的DRY',而不是在该命名空间下的每个模型类中设置前缀。
我不是在我的模型中使用命名空间的忠实粉丝。但是,您可以参考以下文章以更好地理解在模块中使用命名空间。
在模型中使用名称空间的一些替代方法
希望这有帮助。