2012-03-12 5 views
1

Très nouveau sur Rails ... Je construis une fonctionnalité qui permet aux gens de comparer des photos, et je ne peux pas décider exactement comment je devrais le structurer. Idéalement, ce que j'aimerais, c'est d'avoir une table de "comparaisons" qui garde un enregistrement des identifiants des photos comparées ainsi que celles de l'utilisateur qui les a comparées, mais je ne suis pas sûr que cela justifie l'utilisation du "belongs_to" fonctionne ou non. Si oui, comment puis-je spécifier que chaque comparaison appartient à DEUX photos séparées?Utilisation de Rails, je ne sais pas si je devrais utiliser belongs_to ou pas

Répondre

1

La structure has_many, :through => Model suivante vous permettra d'avoir des propriétés supplémentaires sur la table de jointure, par ex. 'comparison_user_id'.

class Photo < ActiveRecord::Base 
    has_many :appearances 
    has_many :users, :through => :appearances 
end 

class Appearance < ActiveRecord::Base 
    belongs_to :photo 
    belongs_to :user 
end 

class User < ActiveRecord::Base 
    has_many :appearances 
    has_many :photos, :through => :appearances 
end 
+0

Apparemment, l'apparence était un nom plus approprié et descriptif que la comparaison. La dénomination est importante. –

+0

Je pense que vous n'avez pas compris la question. Il est nommé une comparaison parce que c'est un modèle contenant * deux * photos et aussi un utilisateur. –

+0

@JakubHampl C'est correct, même si je pense que l'utilisation du paramètre: through peut toujours être la clé pour que cela fonctionne. Je vais jouer avec et voir ce que je reçois .... –

Questions connexes