0

リスト6.18(レール3.2)の一意性制約のテストを理解しようとしています。

describe "when email address is already taken" do
  ...
  before do
    user_with_same_email = @user.dup
    user_with_same_email.save
  end
  it { should_not be_valid }
end

「ここでの方法は、@user と同じ電子メール アドレスを持つユーザーを作成することです。これは、同じ属性を持つ複製ユーザーを作成する @user.dup を使用して実現します。その後、そのユーザーを保存するため、元の @user にはこの電子メール アドレスはデータベースに既に存在するため、有効ではありません。」

私がはっきりしていない部分は、最初のユーザーがデータベースに保存された場所/時期です。つまり、user.save への呼び出しはありません。オートマジックはどこ?

ありがとう、

4

1 に答える 1