【问题标题】:rails : stack level too deeprails :堆栈级别太深
【发布时间】:2012-07-24 02:01:45
【问题描述】:

实际上,我正在为模型 many->many 做一个项目。我需要找到当前用户的所有积分/设备/项目(我认为只有两列(id & score)的表积分是没用的,所以我将此表合并到连接表)。

我收到此错误:

SystemStackError in Users#show

Showing app/views/shared/_credit.html.erb where line # raised:

stack level too deep

还有两个模型:

class **Credit** < ActiveRecord::Base
  attr_accessible :created_at, :credit_id, :device_id, :project_id, :score, :user_id

belongs_to :device
belongs_to :user
belongs_to :project
belongs_to :score

end

class **User** < ActiveRecord::Base

has_many :credit
has_many :credit, :through => :credit, foreign_key: "user_id", dependent: :destroy
end

谢谢!

最好的。

【问题讨论】:

  • 您知道has_and_belongs_to_many 关系吗?检查guides.rubyonrails.org/…。此外,当您说has_many 时,它必须是credits 而不仅仅是credit
  • 你定义了2个has_many :credit;我想第二个should be projects`

标签: ruby-on-rails ruby sqlite


【解决方案1】:

堆栈级别到深度指向不定式递归调用,我会说你可以通过

has_many :credit, :through => :credit,

这清楚地引入了某种循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-19
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多