Alors, prenez le test suivant dans Rspec:Le nouvel enregistrement de Rails? pas réinitialiser (true) si la transaction est annulée
require 'spec_helper'
describe Author do
self.use_transactional_fixtures = false
after(:each) do
Author.destroy_all
end
it "should behave normal when using transactions" do
my_author = nil
begin
Author.transaction do
my_author = Author.new(:name => "My Name")
my_author.new_record?.should be_true
my_author.save!
raise "some exception"
end
rescue
end
Author.count.should == 0
my_author.new_record?.should be_true
end
end
La dernière ligne:
my_author.new_record?.should be_true
donne:
'Author should behave normal when using transactions' FAILED
expected true, got false
au moins lorsque vous annulez la création d'un enregistrement, je m'attends à ce qu'il revienne complètement, ce qui réinitialise le nouvel enregistrement. et l'id aussi. Est-ce que j'ai râté quelque chose? Est-ce que c'est prévu? J'utilise des rails 2.3.5
new_record? est une méthode censée refléter l'état de la base de données. – gtd