gpt4 book ai didi

ruby-on-rails - decent_exposure 每次创建双条目

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:32 25 4
gpt4 key购买 nike

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

Controller

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

提前致谢!

最佳答案

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

发生这种情况是因为 decent_exposure已经为您设置了必需的属性,当您调用 .update(deal_params) 时它复制了自 DealVariant 的第一个实例以来的条目是set by decent_exposure ,第二个是 set by .update(deal_params) 称呼。您需要做的是使用简单的 .save create 中的方法和 update Action 。

关于ruby-on-rails - decent_exposure 每次创建双条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25705134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com