2014-09-06 24 views
2

我使用decent_exposure gem和cocoon gem用於嵌套表單,每次創建或更新後都會得到重複的條目。我究竟做錯了什麼? X_Xdecent_exposure每次創建雙條目

控制器

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 

提前感謝!

回答

0

我今天遇到了同樣的問題,這裏是我的答案和解釋:

這是因爲decent_exposure已經設置必需的屬性給你,當你調用.update(deal_params)它複製自DealVariant一審被set by decent_exposure條目,第二個是set by .update(deal_params)打電話。您需要做的是在createupdate操作中都使用簡單的.save方法。