我需要为 Modification
模型 if.save
建立新的关联。此外,这些关联需要与相关的 Entity
模型相同。但我收到此错误:
ModificationController.rb
def create
@modification = Modification.new(change_params)
respond_to do |format|
if @modification.save
@modification.entity.boxes.each do |d|
@modification.boxes.new(d)
end
flash[:success] = "Success"
format.html { redirect_to @modification }
format.json { render :show, status: :created, location: @modification }
else
format.html { render :new }
format.json { render json: @modification.errors, status: :unprocessable_entity }
end
end
end
更多信息:
每个
Modification
都属于 Entity
Modifications
和 Entities
has_many Boxes
。 最佳答案
所以你想使用现有的 Box
创建一个新的框关联。我们可以获取现有框的属性来创建新框。然而,一个现有的盒子已经有一个 id
,所以我们需要从属性中排除它。
按照上述逻辑,以下应该有效:
def create
@modification = Modification.new(change_params)
respond_to do |format|
if @modification.save
@modification.entity.boxes.each do |d|
@modification.boxes << d.dup
end
flash[:success] = "Success"
format.html { redirect_to @modification }
format.json { render :show, status: :created, location: @modification }
else
format.html { render :new }
format.json { render json: @modification.errors, status: :unprocessable_entity }
end
end
end
关于ruby-on-rails - 由于格式错误, Controller 无法在 Rails 中建立关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34290074/