2010-01-15 8 views
0

J'ai trois modèles: dans le but de poser la question, je les appellerai posts, containertable1 et containertable2.: foreign_key ne demande pas dans la colonne de droite?

Fondamentalement, la table Posts a une colonne appelée misc_id, qui a l'ID d'un élément qui est soit containertable1 ou containertable2. J'ai essayé de mettre en place une association de clé étrangère, mais cela ne semble pas aller chercher dans la colonne que je spécifie.

Alors, voici ce que mon modèle post.rb ressemble à:
classe post < ActiveRecord :: Base
belongs_to: containertable1,: polymorphes => true,: foreign_key => "misc_id"
belongs_to: containertable2,: polymorphes => true,: foreign_key => "transactions" "misc_id"
de set_table_name

Et puis mon modèle containertable1.rb:
classe Containertable1 < ActiveRecord :: base
has_many: transactions

Mais dans le script/console, quand je lance Containertable1.find (: d'abord) .posts, il me donne cette erreur:

Unknown column 'posts.containertable1_id'

I espérait que ça tenterait de chercher la colonne "misc_id" à la place. Quelqu'un peut-il donner un aperçu de ce que je fais de mal? Un grand merci :)

Répondre

0

J'ai joué avec ça encore plus, je pense l'avoir compris.

la clé étrangère doit être dans les modèles containertable.rb. Voici donc ce que j'ai changé:

classe Containertable1 < ActiveRecord :: Base has_many: messages,: foreign_key => "misc_id"