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

时间:2018-02-12 13:07:08

标签: ruby-on-rails nested nested-forms

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

我将嵌套字段乘以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'元素在这里?我确实希望用户能够在需要时添加新值。

创造没有什么特别之处:

  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个嵌套字段,但是我为了不断重复而做错了什么。

1 个答案:

答案 0 :(得分:0)

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

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

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