Handling namespace models (classes) in namespace

2019-01-21 22:10发布

I am using Ruby on Rails 3 and I would like to handle models (classes) namespaces within namespaces. That is, if I have a namespace named NS1 and a "sub-namespace" of that namespace named NS2, I would like to handle models (classes) in NS2.

If I run a scaffold

rails generate scaffold ns1/ns2/Article id:integer title:string

it will generate following model files:

models/ns1/ns2/article.rb file
models/ns1/articles.rb

The models/ns1/articles.rb contains:

module Ns1::Articles
  def self.table_name_prefix
    'ns1_articles_'
  end
end

What is the models/ns1/articles.rb file? How and why can I use that? Have you advices about using that?

And, in general, what is "the best" way to handle "composed" classes in namespaces using Ruby on Rails?

1条回答
混吃等死
2楼-- · 2019-01-21 22:59

The

models/ns1/articles.rb

is basically setting the table name prefix for all the model classes under that namespace. Thats its use. It's more DRY'ish to do in there (in a single file), rather than setting the prefix in every model class under that namespace.

I am not a big fan of using namespaces in my models. However you could refer to the following articles to gain a better understanding about using namespaces in modules.

Some alternatives to using namespaces in models

Hope this helps.

查看更多
登录 后发表回答