我正在开发一个可以帮助我跟踪财务状况的应用程序。有一个模型可以跟踪我的投资账户(例如 401k 等)以及与每个账户相关的每月余额。Investment_accounts 模型有_many 余额和余额属于_invest_accounts。
我希望该应用程序现在可以跟踪债务,特别是我的抵押贷款。但我正在努力弄清楚如何最好地建模这个?我需要一个抵押模型,它的信息不同于投资帐户(特别是利率)。但是抵押贷款模型应该利用余额表,因为跟踪抵押贷款余额与跟踪投资账户余额非常相似。但是我不知道如何修改 balances 表以使其足够灵活地同时为mortgage 表和invest_account 表提供服务。
我考虑在 balances 模型上添加一个“type”属性并创建如下命名范围:
scope :investment_accounts, where(type: 'investment')
scope :mortgage, where(type: 'mortgate')
但后来我意识到这应该会导致一些看起来很奇怪的 ActiveRecord 查询。为实例:
investment_accounts.balances.investment_accounts
和
mortgage.balances.mortgage
我认为这是一种代码气味。关于如何正确执行此操作的任何建议?