Ruby on rails 3.2 避免rails保存嵌套的属性时回滚

Ruby on rails 3.2 避免rails保存嵌套的属性时回滚,ruby-on-rails-3.2,Ruby On Rails 3.2,整体事务模型 accepts_nested_attributes_for :transactions Overalltransaction::Transaction.class_eval do attr_accessible :product_id, :rate, [...], :transaction_attributes end 更新添加到模型的嵌套属性的计算 全局事务的创建操作控制器 @overalltransaction = Overalltransaction.

整体事务模型

  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

对于它应该创建的每个产品。这里缺了什么/出了什么问题?(rails 3.2.21)

您必须允许在整体事务中嵌套属性,如

  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])

因为我有picture&location嵌套属性。

总体来说,事务和事务类非常相似,它们也有相似的验证。
回滚
正在启动,因为未满足子记录的一个验证。

我用允许访问属性的块更新了问题。然而,行为保持不变