对于嵌套表单,我使用decent_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 Deal < ActiveRecord::Base
has_many :deal_variants
accepts_nested_attributes_for :deal_variants, reject_if: :all_blank, allow_destroy: true
end提前感谢!
发布于 2015-02-18 14:49:35
我今天遇到了同样的问题,以下是我的解决办法和解释:
这是因为decent_exposure已经为您设置了必需的属性,当您调用.update(deal_params)时,它会复制条目,因为DealVariant的第一个实例是曝露,第二个是.update(deal_params)调用。相反,您需要做的是在create和update操作中使用简单的update方法。
https://stackoverflow.com/questions/25705134
复制相似问题