Ruby on rails 从另一个模型运行模型的更新方法

Ruby on rails 从另一个模型运行模型的更新方法,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有交易和债务模型 transaction has_one: :debt debt belongs_to: :transaction 当用户创建事务并将其标记为债务时,事务模型创建事务。债务在债务模型中,我拥有处理债务的所有逻辑:在创建之前运行,在创建之后运行 所以,我需要同样的行为来更新事务。我是否可以从交易模型运行债务模型的更新方法(更新前和更新后),而不使用任何更新属性 据我所知,所有更新方法,如update和update\u属性都需要一些属性进行更新 谢谢你的帮助 如果将更新之前的和更

我有
交易
债务
模型

transaction has_one: :debt
debt belongs_to: :transaction
当用户创建事务并将其标记为债务时,
事务
模型创建
事务。债务
债务
模型中,我拥有处理债务的所有逻辑:在创建之前运行
,在创建之后运行

所以,我需要同样的行为来更新事务。我是否可以从
交易
模型运行
债务
模型的更新方法(
更新前
更新后
),而不使用任何更新属性

据我所知,所有更新方法,如
update
update\u属性
都需要一些属性进行更新


谢谢你的帮助

如果将更新之前的
和更新之后的
回调定义为实际方法,则可以直接在回调之外调用它们

class Debt < ActiveRecord::Base

  before_update :do_before
  after_update :do_after

  def do_before
    # Before update processing
  end

  def do_after
    # After update processing
  end

由于ActiveRecord上下文,您可以运行特定的回调,如下所示:

transaction.run_callbacks(:update)

谢谢在我的例子中,它将是self.debt.run\u回调(:update)
,但有一个问题:实际上In不更新debt,它只运行它的更新方法。我的意思是,如果我在更新之前在
中有一些债务更改,它们将不会被保存。现在我明白了,我的问题并不清楚,但事实上我需要从交易模型更新债务,但没有任何属性。
transaction.run_callbacks(:update)