【发布时间】:2015-12-15 13:05:26
【问题描述】:
我需要为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。
【问题讨论】:
-
boxes是一个关联吗?如果是这样,d是Box,所以这样做@modification.boxes.new(d)会产生你提到的错误消息。 -
是的。盒子就是联想。
-
@modification.boxes << d你可以做 -
或者,可能是
@modification.boxes.create!(d.attributes)(至少在rails 3中)
标签: ruby-on-rails ruby controller associations