2012-07-29 1 views
0

J'ai un modèle nommé Container. Ce modèle a juste une liste de liens associés. J'ai donc créé des tables conteneurs, liens et containers_links. Maintenant, je veux connecter mes deux modèles. Donc j'ai faitRails: has_many: à travers sans table supplémentaire

class Container < ActiveRecord::Base 
    has_many :links, :through => :containers_links 
end 

class Links < ActiveRecord::Base 
    has_many :containers, :through => :containers_links 
end 

Mais j'ai une erreur parce que je n'ai pas de réflexion avec containers_links dans mon modèle. Je peux ajouter quelque chose comme

has_many :containers_links 

Mais je n'ai pas de modèle ContainersLinks (et je ne veux pas en créer un). Que devrais-je faire?

Répondre

0

Vous pouvez utiliser has_and_belongs_to_many relation

class Container < ActiveRecord::Base 
    has_and_belongs_to_many :links 
end 

class Links < ActiveRecord::Base 
    has_and_belongs_to_many :containers 
end 

Mais vous avez encore besoin de créer join table.

+0

Est-ce que has_and_belongs_to_any est obsolète dans Rails 3? – Ximik

+0

Cela fonctionne toujours http://stackoverflow.com/questions/7850111/rails-3-1-has-and-belongs-to-many-deprecated – megas

+0

Je le considère comme obsolète mais c'est une longue discussion sur les opinions. –

Questions connexes