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?
The
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.