编辑三重嵌套字段正在创建重复项 Rails 5.1

Editing Triple Nested Fields is Creating Duplicates Rails 5.1

我有一个三层嵌套的资源,我可以很好地为它创建新的值。但是,在尝试编辑记录时,我得到了嵌套值的重复字段,然后创建了多个条目。

我将嵌套字段乘以 3。

  def new
    @roast = Roast.new
    3.times {@roast.countries.build.regions.build}
  end

编辑方法:

  def edit
    @roast = Roast.friendly.find(params[:id])
    3.times {@roast.countries.build.regions.build}
  end

我应该删除此处的 'build' 元素吗?但是,我确实希望用户能够在需要时添加新值。

而 create 对此没有什么特别之处:

  def create
    @roast = Roast.new(roast_params)

    respond_to do |format|
      if @roast.save
        format.html { redirect_to @roast, notice: 'Roast was successfully created.' }
        format.json { render :show, status: :created, location: @roast }
      else
        format.html { render :new }
        format.json { render json: @roast.errors, status: :unprocessable_entity }
      end
    end
  end

我明明想让3个嵌套字段显示在编辑页面上,但我做错了什么让它一直重复。

您无需在编辑中添加国家或地区。只需找到烤肉。

#This is wrong
3.times {@roast.countries.build.regions.build}

编辑烤肉时,您可以通过 @roast.countries 访问其国家/地区 如果需要,您可以定义一个实例变量以在表单中使用(尽管不需要)@countries = @roast.countries