我在尝试运行的回调方法上遇到困难。我有一张具有嵌套的采购条目表单的发票(一种表单中有几个发票条目)。每个购买条目都有单独的产品,数量和价格。
我在购买条目上有一个回调函数来更新关联产品的数量,例如:
var fileMask = String.Format("{0:yyMMdd}_????_Original_etc.pdf", date);
var paths = Directory.GetFiles(reportPath, fileMask);
var path = paths.OrderByDescending( p => p ).FirstOrDefault();
然后,在我的产品模型中,我有以下内容
let imageHeader = UIImageView(frame: CGRect(x: 0, y: 0, width: self.tableView.frame.width, height: 50))
let header = UIView(frame : CGRect(x : 0, y : 0, width : self.tableView.frame.width, height : 200))
imageHeader.image = UIImage(named: "paindown-logo.png")
imageHeader.contentMode = .scaleAspectFit
imageHeader.center = CGPoint(x: header.bounds.midX, y: header.bounds.midY);
header.addSubview(imageHeader)
self.tableView.tableHeaderView = header
但是,此update_quantity方法使用所有采购条目中的总数而不是仅创建的新的purchase_entries更新数据库。如何将方法限制为仅已创建的条目?
答案 0 :(得分:0)
如何将方法限制为仅已创建的条目?
=>每次对象before_save
都会调用saved
。因此对于新的和现有的对象。 (创建和更新操作)
=> before_create
仅在创建之前。因此,仅适用于新对象(创建操作)
=> Rails 5具有after_create_commit
after_update_commit
和after_destroy_commit
(在创建,更新或销毁记录后调用after_commit
。)
因此,您可以按照以下步骤进行操作:-
class PurchaseEntry < ActiveRecord::Base
after_create_commit :update_quantity
belongs_to :product
def update_quantity
if product.present?
product.update_quantity
end
end
end