Posted almost 5 years ago. Visible to the public. Repeats.

Rails: namespacing models with table_name_prefix instead of table_name

When you want to group rails models of a logical context, namespaces are your friend. However, if you have a lot of classes in the same namespace it might be tedious to specify the table name for each class seperately:

class Accounting::Invoice < ApplicationRecord self.table_name = 'accounting_invoices' ... end class Accounting::Payment < ApplicationRecord self.table_name = 'accounting_payments' ... end

A replacement for the self.table_name-assignment is the table_name_prefix in the module definition:

module Accounting def self.table_name_prefix 'accounting_' end end class Accounting::Invoice < ApplicationRecord ... end class Accounting::Payment < ApplicationRecord ... end

Rails will be able to derive the table name accounting_invoices for Accounting::Invoice.

Your development team has a full backlog of feature requests, chores and refactoring coupled with deadlines? We are familiar with that. With our "DevOps as a Service" offering, we support developer teams with infrastructure and operations expertise.

Owner of this card:

Daniel Straßner
Last edit:
2 months ago
by Henning Koch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Daniel Straßner to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more