问题描述
|
我正在使用Ruby on Rails 3,并且想处理名称空间中的模型(类)名称空间。也就是说,如果我有一个名为NS1的名称空间和该名称空间为NS2的\“ sub-namespace \”,我想在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处理名称空间中“组合”类的“最佳”方法是什么?
解决方法
的
型号/ns1/articles.rb
基本上是为该名称空间下的所有模型类设置表名前缀。多数民众赞成在使用。在那里(在单个文件中)要做的事更多,而不是在该命名空间下的每个模型类中设置前缀。
我不是在模型中使用名称空间的忠实拥护者。但是,您可以参考以下文章,以更好地了解如何在模块中使用名称空间。
命名空间模型和控制器
在模型中使用名称空间的一些替代方法
命名空间模型的简单替代
希望这可以帮助。