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
.
Posted by Daniel Straßner to makandra dev (2017-09-07 09:59)