Handling namespace models (classes) in namespace

31,774

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.

Share:
31,774
user502052
Author by

user502052

Updated on January 05, 2020

Comments

  • user502052
    user502052 over 4 years

    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?