1

我正在为有趣的人制作一个简单的金融应用程序。我使用单表继承对贷方和借方进行建模,两者都继承自交易。但是,每笔交易都属于一个用户:

class Transaction < ActiveRecord::Base
  belongs_to :user
end

class Debit < Transaction
end

class Credit < Transaction
end

我可以为贷方和借方创建单独的控制器并执行以下操作:

@debit = current_user.debits.build(params[:debit])
...
@credit = current_user.credits.build(params[:credit])
...

但是用户没有借方或贷方的方法,只有交易。或者,我可以定义一个事务控制器:

@transaction = current_user.transactions.build(params[:transactions])

但是类型为空,如果它受到大规模分配的保护,我应该如何设置它?无论哪种方式,它都有点咸菜。除了泡菜味道很好。

4

1 回答 1

1

您可以通过执行以下操作显式设置第二个示例中的事务类型:

@transaction = current_user.transactions.build(params[:transactions])
@transaction.type = "Debit"
@transaction.save

唯一的问题是 @transaction 实例变量在保存并重新加载到不同的变量之前不会是借记类型。

于 2012-06-09T21:55:22.897 回答