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
方法