rails:堆栈级别太深

时间:2012-07-25 15:22:13

标签: ruby-on-rails ruby sqlite

实际上我正在进行一个多模型的项目 - >多个。我需要找到当前用户的所有信用/设备/项目(我认为只有两个列(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

谢谢!

最佳。

2 个答案:

答案 0 :(得分:15)

堆栈级到深度指向一个不定式的递归调用,我会说你用

得到它
has_many :credit, :through => :credit,

这清楚地介绍了某种循环。

答案 1 :(得分:0)

您需要将Rails版本升级到最新版本才能解决此问题。

另一个选择是将ruby版本降级到旧版本。

您遇到此问题,因为您使用的rails版本与ruby版本不兼容。