由于格式错误,控制器未在 Rails 中建立关联
Controller not making associations in Rails because of wrong format
我需要为 Modification
模型 if.save
建立新的关联。此外,这些关联需要与相关的 Entity
模型相同。但我收到此错误:
When assigning attributes, you must pass a hash as an argument.
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
belongs_toEntity
Modifications
和 Entities
has_many Boxes
.
当你声明一个has_many关联时,声明class会自动获得与关联相关的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
希望这篇文章能帮到你!!!
所以您想使用现有的 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
我需要为 Modification
模型 if.save
建立新的关联。此外,这些关联需要与相关的 Entity
模型相同。但我收到此错误:
When assigning attributes, you must pass a hash as an argument.
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
belongs_toEntity
Modifications
和 Entities
has_many Boxes
.
当你声明一个has_many关联时,声明class会自动获得与关联相关的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
希望这篇文章能帮到你!!!
所以您想使用现有的 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