je suis passé à Rails 3 et RSpec 2 et l'un de mes tests RSpec a cessé de fonctionner:test d'association rspec ne fonctionne que dans un sens
# Job.rb
class Job < ActiveRecord::Base
has_one :location
belongs_to :company
validates_associated :location
end
# Location.rb
class Location < ActiveRecord::Base
belongs_to :job
end
# job_spec.rb
describe Job, "location" do
it "should have a location" do
job = Factory(:job)
location = Factory(:location, :job_id => job.id)
location.job.should == job #true
job.location.should == location #false
end
end
job.location
évalue à zéro mais location.job
est correcte. Il fonctionne également très bien si je me débarrasse de validates_associated :location
. Quelqu'un peut-il expliquer pourquoi cela ne fonctionne pas?
Votre usine '' create' ou build' par défaut? Je voudrais définir une autre usine ': job_with_a_location' où vous utilisez les constructeurs d'association pour vous assurer qu'il est correctement rempli. Mais ça n'explique pas pourquoi ça ne marche plus :) – nathanvda