2011-08-25 4 views
3

J'ai la définition d'usine suivante.Factory-girl: la colonne nommée 'association' chevauche la méthode Factory nommée 'association'

Factory.define :status do |f| 

end 

Factory.define :my_status , :parent => :status do |f| 
    f.association 'something_here' 
    f.alias 'something_here' 
    f.name 'something_here' 
end 

Je sais que sur la méthode définie usine 'd'association', quelque chose comme: f.association: groupe,: usine =>: groupe Mais j'ai en fait une colonne nommée association. Quel sera le moyen d'attribuer des valeurs à ma colonne?

Mise à jour: Une façon de résoudre est venu me voir après poste Maletor - Merci Maletor

J'ai ajouté à mon modèle d'état

alias_attribute :assoc, :association 

et maintenant je peux faire

Factory.define :my_status , :parent => :status do |f| 
    f.assoc 'somthing_here' 
    f.alias 'somthing_here' 
    f.name 'somthing_here' 
end 

Fonctionne bien :)

Répondre

2

Vous pouvez l'affecter dans un f.after_create. Pas aussi élégant cependant. Renommer la colonne n'est peut-être pas une mauvaise idée non plus.

+1

C'est un bon moyen, le problème est que je suis en train de pré-charger ces Factory et ça ne marchera pas dans mon cas. Renommer la colonne de la table n'est pas une option, mais plutôt l'idée de créer un alias dans le modèle pour cette colonne. J'ai ajouté cela à ma description ci-dessus – VelLes