2012-07-25 6 views
8

Actualmente estoy en un proyecto para un modelo many-> many. Necesito encontrar con un usuario actual todos los créditos/dispositivos/proyecto (y creo que es inútil tener un crédito de tabla con solo dos columnas (id & puntuación) así que fusiono esta tabla con la tabla de combinación).rieles: nivel de pila muy profundo

me sale este error:

SystemStackError in Users#show 

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

stack level too deep 

Y los dos modelos:

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 

gracias!

Mejor.

+1

¿Conoces la relación 'has_and_belongs_to_many'? Verifique http://guides.rubyonrails.org/association_basics.html#the-has_and_belongs_to_many-association. Además, cuando dice 'has_many', tiene que ser' credits' en lugar de 'credit'. –

+0

Has definido 2 'has_many: credit'; Creo que el segundo 'debe ser' proyectos' – Baldrick

Respuesta

15

nivel Pila de puntos profundos a una llamada recursiva infinitivo, y yo diría que se obtiene con

has_many :credit, :through => :credit, 

que introduce claramente un ciclo de algún tipo.

0

Necesita actualizar la versión de Rails a la última versión para solucionar este problema.

Otra opción es bajar la versión de ruby ​​a una versión anterior.

está recibiendo este problema porque la versión de rieles que está utilizando no es compatible con la versión de ruby.

Cuestiones relacionadas