我需要为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
belongs_to Modifications
Entities
和Boxes
都有__ compile 'com.google.android.gms:play-services-maps:8.3.0'
。
答案 0 :(得分:2)
因此,您希望使用现有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
答案 1 :(得分:1)
当您声明has_many关联时,声明类会自动获得与关联相关的16个方法,如提及Guide Ruby On Rails Association Has-Many
def create
@modification = Modification.new(change_params)
respond_to do |format|
if @modification.save
@modification.entity.boxes.each do |d|
@modification.boxes << d # if d.present? use if condition there is nay validation in your model.
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
希望你能来啦!