rails 保存 nested_attributes 时避免回滚
Avoid rollback when rails saves nested_attributes
模型整体交易
accepts_nested_attributes_for :transactions
Overalltransaction::Transaction.class_eval do
attr_accessible :product_id, :rate, [...], :transaction_attributes
end
更新 评估添加到模型的嵌套属性
整体事务的创建动作控制器,
@overalltransaction = Overalltransaction.new(params[:overalltransaction])
@transaction_count = params[:product_ids].count
@overalltransaction.transactions.build
@transactions = session[:product_ids].map do |product_id|
transaction = Transaction.new
transaction.rate = @price
[...]
end
respond_to do |format|
if @overalltransaction.save
@transactions.each do |transaction|
transaction.save
end
[...]
end
当提交时间到来时,终端指示:
(1.9ms) BEGIN
(1.8ms) ROLLBACK
对于它应该创建的每个产品。这里的 missing/wrong 是什么? (rails 3.2.21)
您必须允许在 Overalltransaction 中嵌套属性,例如
params.require(:company).permit(:linkedin, :twitter, :facebook, :name, :organization_type, :industry, :phone, :year, :website, :user_id, :vision, :picture_attributes=> [:id, :image,:image_crop_x, :image_crop_y, :image_crop_w, :image_crop_h, :picturable_id, :picturable_type], :locations_attributes=>[:id, :street_address, :city, :suite, :state, :zip, :phone ,:country, :headquarter, :company_id, :_destroy])
因为我有图片和位置嵌套属性。
Overalltransaction 和 Transaction 非常相似 类 它们也有相似的验证。 ROLLBACK
正在启动,因为未满足子记录的验证之一。
模型整体交易
accepts_nested_attributes_for :transactions
Overalltransaction::Transaction.class_eval do
attr_accessible :product_id, :rate, [...], :transaction_attributes
end
更新 评估添加到模型的嵌套属性
整体事务的创建动作控制器,
@overalltransaction = Overalltransaction.new(params[:overalltransaction])
@transaction_count = params[:product_ids].count
@overalltransaction.transactions.build
@transactions = session[:product_ids].map do |product_id|
transaction = Transaction.new
transaction.rate = @price
[...]
end
respond_to do |format|
if @overalltransaction.save
@transactions.each do |transaction|
transaction.save
end
[...]
end
当提交时间到来时,终端指示:
(1.9ms) BEGIN
(1.8ms) ROLLBACK
对于它应该创建的每个产品。这里的 missing/wrong 是什么? (rails 3.2.21)
您必须允许在 Overalltransaction 中嵌套属性,例如
params.require(:company).permit(:linkedin, :twitter, :facebook, :name, :organization_type, :industry, :phone, :year, :website, :user_id, :vision, :picture_attributes=> [:id, :image,:image_crop_x, :image_crop_y, :image_crop_w, :image_crop_h, :picturable_id, :picturable_type], :locations_attributes=>[:id, :street_address, :city, :suite, :state, :zip, :phone ,:country, :headquarter, :company_id, :_destroy])
因为我有图片和位置嵌套属性。
Overalltransaction 和 Transaction 非常相似 类 它们也有相似的验证。 ROLLBACK
正在启动,因为未满足子记录的验证之一。