删除记录时出现 Stack Overflow 错误:
SystemStackError(堆栈级别太深):
应用程序/控制器/orders_controller.rb:18:在“销毁”中
我发现了另一个与 ruby 相关的系统堆栈错误,但我没有完全了解如何修复它,因为我的问题略有不同。
是这里:Ruby,堆栈级别太深(SystemStackError) https://stackoverflow.com/questions/19082772/ruby-stack-level-too-deep-systemstackerror
这是方法,第二行导致错误:
def destroy
@order = Order.find(params[:id]).destroy
flash.now[:success] = true
flash.now[:success_title] = "¡Orden eliminada!"
flash.now[:succes_message] = "La orden #{@order.id} fue eliminada."
respond_to do |format|
format.html {redirect_to orders_path}
format.js {}
end
我可以改变什么来解决这个问题?
当您尝试删除具有声明关系的记录时,会发生堆栈级别太深错误dependent: :destroy
相互链接。
Example:
class Order < ActiveRecord::Base
has_many :items, dependent: :destroy
end
class Item < ActiveRecord::Base
belongs_to :order, dependent: :destroy
end
去除dependent: :destroy
来自项目关联的应该解决循环错误/堆栈级别太深的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)