私は 3.2.3 でアプリを構築してきましたが、問題なく動作しています。セキュリティの脆弱性に対処するために 3.2.6 にアップグレードするとすぐに、ルートの 1 つが機能しなくなりました。
これは単純なビューで、ブロック オブジェクトの編集をクリックすると、編集画面が表示されます。ただし、変更を加えて送信すると、次のエラーが表示されます。
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
update アクションで、redirect_to @units を redirect_to units_path に変更すると、エラーはなくなります。3.2.6 で何か変更があり、私のようにリダイレクトできなくなりましたか? まったく同じ編集および更新アクションを持つ別のコントローラーがあり、そのまま正常に動作します。
私は 3.2.3 と 3.2.6 の 2 つのラップトップを持っています。3.2.3 は正常に動作しますが、アップグレードするとすぐに同じエラーが発生しました。
どんな助けでも大歓迎です。