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



我正在使用Ruby on Rails 3,我想在名称空间内处理模型(类)名称空间。也就是说,如果我有一个命名为NS1的命名空间和一个命名为NS2的命名空间的"子命名空间",我想在NS2中处理模型(类)。

如果我运行scaffold

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

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

我不太喜欢在模型中使用名称空间。但是,您可以参考以下文章来更好地理解如何在模块中使用名称空间。

  • 命名空间模型和控制器

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

  • 名称空间模型的简单替代

相关内容

  • 没有找到相关文章

最新更新