gpt4 book ai didi

ruby-on-rails-3 - Rails 3.2 ActiveRecord 的堆栈溢出异常

转载 作者:行者123 更新时间:2023-12-01 14:41:28 30 4
gpt4 key购买 nike

Rails 3.2.1 有一个奇怪的问题。使用带有令人讨厌的列名的遗留数据库,我试图在我的模型中清理它们。以下模型在 HTML 中运行良好,但使用 JSON 或 XML 进行响应会抛出 stack level too deep 错误:

class Order < ActiveRecord::Base
set_table_name 'ordersum'
set_primary_key 'ordernbr'

alias_attribute 'id','ordernbr'
alias_attribute 'customer_id', 'custid'
alias_attribute 'shipping_name', 'sname'
alias_attribute 'shipping_company','scompany'
alias_attribute 'shipping_address1','saddress1'
alias_attribute 'shipping_address2','saddress2'
alias_attribute 'shipping_city','scity'
alias_attribute 'shipping_state','sstate'
alias_attribute 'shipping_zip','zip'
alias_attribute 'shipping_country','scountry'
alias_attribute 'shipping_phone','sphone'
alias_attribute 'shipping_method','shipvia'
alias_attribute 'subtotal','product'
alias_attribute 'shipping', 'freight'
alias_attribute 'handling', 'handling'
alias_attribute 'total', 'ordertot'
alias_attribute 'transaction_id', 'vsTransactionId'
alias_attribute 'reference_number', 'vsrefnbr'
alias_attribute 'approval_code', 'vsappcode'
alias_attribute 'created_on', 'entereddtm'
end

class OrdersController < ApplicationController
respond_to :html, :xml, :json

def index
@orders = Order.all
respond_with @orders
end
end

订单的堆栈级别太深,没有堆栈跟踪。

编辑 #1 框架/完整跟踪有 1 个项目:

actionpack (3.2.1) lib/action_dispatch/middleware/reloader.rb:70

编辑 #2 挖掘后发现了一些额外的细节。做了一个 Rails 控制台和一个 Order.find 并得到了下面的错误。请注意 Order.all 工作正常。

C:\Users\Rich\App>rails console
Loading development environment (Rails 3.2.1)
irb(main):001:0> Order.find(1)
←[1m←[36mOrder Load (1.0ms)←[0m ←[1mSELECT `ordersum`.* FROM `ordersum` WHERE `ordersum`.`ordernbr` = 1 LIMIT 1←[0m
SystemStackError: stack level too deep
from C:/ruby/lib/ruby/1.9.1/logger.rb:443
irb(main):002:0>

最佳答案

你的意思是给 handling 别名吗?

alias_attribute 'handling', 'handling'

这会让你的筹码爆满。

关于ruby-on-rails-3 - Rails 3.2 ActiveRecord 的堆栈溢出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184244/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com