我一直在 3.2.3 中构建一个应用程序,它运行良好,一旦我升级到 3.2.6 以解决安全漏洞,我的一条路线就停止了工作。
这是一个简单的视图,当我在块对象上单击编辑时,它会将我带到编辑屏幕。但是,当我进行更改并点击提交时,我收到此错误:
Routing Error
No route matches {:action=>"edit", :controller=>"units", :id=>nil}
在我的控制器中有一个编辑和更新操作:
def edit
@units = Unit.find(params[:id])
end
def update
@units = Unit.find(params[:id])
respond_to do |format|
if @units.update_attributes(params[:unit])
format.html { redirect_to @units, notice: 'Unit was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @units.errors, status: :unprocessable_entity }
end
end
end
在更新操作中,如果我将 redirect_to @units 更改为 redirect_to units_path,错误就会消失。3.2.6 中有什么改变不会让你像我一样重定向吗?我有另一个具有完全相同的编辑和更新操作的控制器,它可以正常工作。
我有两台笔记本电脑,一台是 3.2.3,另一台是 3.2.6。3.2.3 工作正常,但一旦我升级它,我就得到了同样的错误。
任何帮助表示赞赏。