2012-07-25 16 views
8

Aslında i> birçokları bir model için bir proje üzerinde birçok değilim. Bir geçerli kullanıcı tüm kredi/aygıtlar/proje ile bulmalıyız (ve sadece iki sütuna (id & puanı) sahip bir tablo kredi olması yararsız olduğunu düşünüyorum bu yüzden katılmak tabloya bu tabloyu birleştirme).raylar: çok derin yığın seviyesi

bu hatayı alıyorum:

SystemStackError in Users#show 

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

stack level too deep 

Ve iki modeli:

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 

Teşekkür!

En İyi.

+1

Eğer 'has_and_belongs_to_many' ilişkinin farkında mı? Http://guides.rubyonrails.org/association_basics.html#the-has_and_belongs_to_many-association adresini kontrol edin. Ayrıca, “has_many” derken, sadece “kredi” yerine “kredi” olmalıdır. –

+0

2 'has_many: credit' tanımladıysanız; Sanırım ikinci 'projeler' olmalı – Baldrick

cevap

15

Yığın bir mastar özyinelemeli çağrısına derin noktalara düzeyi, ve sana olsun söyleyebilirim açıkça bir çeşit döngüsünü tanıtır

has_many :credit, :through => :credit, 

ile.

0

Bu sorunu çözmek için Raylar son sürüme sürümüne yükseltmek gerekir.

başka bir seçenek daha eski sürüme yakut versiyonunu downgrade etmektir. Kullandığınız sürüm raylar çünkü bu sorunu alıyorsanız

yakut sürümü ile uyumlu değildir.