Ich habe folgende Fabriken:Factory Girl Fehler mit has_many Beziehung
Factory.define :email do |email|
email.email {"infomcburney.cowan.com"}
end
Factory.define :lead do |lead|
lead.emails {|emails| [emails.association(:email)]}
end
, die die folgenden Klassen modelliert werden
class Lead < ActiveRecord::Base
has_many :emails
end
class Email < ActiveRecord::Base
belongs_to :lead, :class_name => "Lead", :foreign_key => "lead_id"
end
Wenn ich die diesen Test durch shoulda laufen:
should "capture emails" do
lead = Factory.build(:lead)
assert_equal(1, lead.emails.size)
end
Ich erhalte den folgenden Fehler:
Factory::AttributeDefinitionError: Attribute already defined: emails
Ich bin völlig darauf fest, kann mir jemand in die richtige Richtung zeigen. Ich benutze factory_girl 1.3.2.
Point of style: Fabriken Platzhalter-Daten und nichts anderes enthalten sollen. Alles, was für Sie bei der Verwendung von Bedeutung sein sollte, ist, dass ein gültiger Lead generiert wird, und Sie sollten davon ausgehen, dass sich die tatsächliche Anzahl der an den Lead angehängten E-Mails ändern kann. Wenn Ihr Test von einer bestimmten Anzahl von Leads abhängt, erstellen Sie den Lead ab Werk und legen Sie die E-Mails explizit fest. – Matchu