2012-07-25 12 views
8

In realtà sono in un progetto per un modello molti-> molti. Ho bisogno di trovare con un utente corrente tutti i crediti/dispositivi/progetto (e penso sia inutile avere un credito al tavolo con solo due colonne (id & punteggio) quindi unisco questa tabella alla tabella di join).rotaie: livello di stack troppo profondo

ottengo questo errore:

SystemStackError in Users#show 

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

stack level too deep 

E i due modelli:

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 

grazie!

Migliore.

+1

Sei a conoscenza della relazione "has_and_belongs_to_many'? Controlla http://guides.rubyonrails.org/association_basics.html#the-has_and_belongs_to_many-association. Inoltre, quando dici 'has_many', deve essere' credits' invece di solo 'credit'. –

+0

Hai definito 2 'has_many: credit'; Penso che il secondo 'dovrebbe essere' projects' – Baldrick

risposta

15

livello Pila ai punti di profondità per una chiamata ricorsiva infinito, e direi che si ottiene con

has_many :credit, :through => :credit, 

che introduce chiaramente un ciclo di qualche tipo.

0

È necessario aggiornare la versione di Rails all'ultima versione per risolvere questo problema.

un'altra opzione è il downgrade della versione di Ruby alla versione precedente.

si verifica questo problema perché la versione di rails che si sta utilizzando non è compatibile con la versione di ruby.

Problemi correlati