我有一个三重嵌套资源,我可以很好地创建新值。但是,在尝试编辑记录时,我会获得嵌套值的重复字段,然后创建多个条目。
我将嵌套字段乘以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个嵌套字段,但是我为了不断重复而做错了什么。
答案 0 :(得分:0)
您无需在编辑中添加国家/地区。找到烤肉。
#This is wrong
3.times {@roast.countries.build.regions.build}
编辑烤肉时,您可以通过@roast.countries
访问其所在国家/地区
如果需要,可以定义要在表单中使用的实例变量(尽管不需要)@countries = @roast.countries