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)