Was sind die vorübergehenden Attribute von factory_girl? Warum sollte ich eine verwenden?

Ich leseDie von Thoughtbot, aber für mich ist es immer noch verwirrend.

Dies ist ihr Beispiel:

factory :user do
  transient do
    rockstar true
    upcased  false
  end

  name  { "John Doe#{" - Rockstar" if rockstar}" }
  email { "#{name.downcase}@example.com" }

  after(:create) do |user, evaluator|
    user.name.upcase! if evaluator.upcased
  end
end

create(:user, upcased: true).name
#=> "JOHN DOE - ROCKSTAR"

So

Ist.upcased ein echtes Attribut für das Modell?Was ist dertransient Block wirklich zu tun? Variablen setzen, die dann ab Werk verwendet werden können?Was istevaluator? Muss es immer als letztes bestanden werden? Was ist, wenn Ihrcreate -Funktion verwendet Merkmale, Transienten und hat mehrere Werte?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage