Ruby on rails 得体的曝光每次都会创建两个条目

Ruby on rails 得体的曝光每次都会创建两个条目,ruby-on-rails,ruby,nested-forms,nested-attributes,Ruby On Rails,Ruby,Nested Forms,Nested Attributes,我正在使用delegate_exposuregem和cocoongem进行嵌套表单,每次创建或更新后,我都会得到重复的条目。我做错了什么?X_X 控制器 class Admin::DealsController < ApplicationController expose :deals expose :deal, attributes: :deal_params def create if deal.save redirect_to [:admin, de

我正在使用
delegate_exposure
gem和
cocoon
gem进行嵌套表单,每次创建或更新后,我都会得到重复的条目。我做错了什么?X_X

控制器

class Admin::DealsController < ApplicationController
  expose :deals
  expose :deal, attributes: :deal_params

  def create
    if deal.save
      redirect_to [:admin, deal], notice: 'Deal was successfully created.'
    else
      render :new
    end
  end

  def update
    if deal.update(deal_params)
      redirect_to [:admin, deal], notice: 'Deal was successfully updated.'
    else
      render :edit
    end
  end

  private

  def deal_params
    params.require(:deal).permit :title, :end_date,
                                 deal_variants_attributes: [:id, :title, :description, :price, :discount, :_destroy]
  end
end
class Admin::DealsController
型号

class Deal < ActiveRecord::Base
  has_many :deal_variants

  accepts_nested_attributes_for :deal_variants, reject_if: :all_blank, allow_destroy: true
end
class-Deal

提前谢谢

我今天遇到了同样的问题,下面是我的解决方案和解释:

之所以会出现这种情况,是因为
delegate\u exposure
已经为您设置了所需的属性,并且当您调用
.update(deal\u params)
时,它会复制条目,因为
DealVariant
的第一个实例是,第二个实例是调用的。您需要做的是在
create
update
操作中使用简单的
.save
方法