FactoryGirl を使用してレコードを作成し、後でそのレコードを更新すると、factorygirl インスタンスが更新されないのはなぜですか? たとえば、次のファクトリと rspec テストがあるとします。
factory :foo do
bar false
end
rspec テストの内部:
foo = FactoryGirl.create(:foo)
Foo.first.update_attribute(:bar, true)
expect(foo.bar).to eq(true) #foo.bar is false and will fail
foo.bar
最後の行をパスに変更するFoo.first.bar
と、なぜ差異が発生するのでしょうか? FactoryGirl インスタンスはレコードに直接関連付けられていませんか? テストを実行するとexpect(foo).to eq(Foo.first)
true が返されるので、それらは同じオブジェクトではありませんか?