I have an address model with country_id and province_id fields There is also a full_address method that returns an address that is in a format that the google maps api will be able to return a long-lat coords.
Within the full_address method there is a call to obtain the province/state and country name. --------- def full_address ... full_address = [city, self.province.name, self.country.name].join(",").chomp(",") .. end When I run this in the console it works fine >> a = Address.new => #<Address:0x24c6420 @new_record=true, @attributes={"city"=>nil, "latitude"=>nil, "region_code"=>nil, "province_id"=>nil, "country_id"=>nil, "location_type"=>nil, "location_id"=>nil, "address_1"=>nil, "address_2"=>nil, "longitude"=>nil, "address_3"=>nil, "address_4"=>nil}> >> a.country_id = 1 => 1 >> a.country.name => "Canada" >> a.province_id = 1 => 1 >> a.full_address => ",,Alberta,Canada" but when the specs are run I get errors saying that the country and province object properties are null 11) NoMethodError in 'Address additional properties should ensure spacing between the st/ave on the address' You have a nil object when you didn't expect it! The error occurred while evaluating nil.name /Users/chris/Documents/Projects/Rails/MyProject/trunk/config/../app/models/address.rb:25:in `full_address' ./spec/models/address_spec.rb:66: script/spec:4: Here is one of the tests that fail: describe Address, "additional properties" do before(:each) do @address = Address.new(valid_params) end def valid_params { :country_id => 1, :province_id => 1, :region_code => "T5Z3J4", :address_1 => "13245-56 st", :address_2 => "NW", :city => "Edmonton" } end it "should return the full address format" do @address.country_id.should == 1 #this passes @address.province_id.should == 1 #this passes @address.province.name.should == "Alberta" #this fails @address.country.name.should == "Canada" #this fails @address.full_address.should == "13245-56 st NW,Edmonton,Alberta,Canada" #and this fails if you remove the ones above end class Address < ActiveRecord::Base belongs_to :province belongs_to :country class Country < ActiveRecord::Base has_one :address If I wasn't able to make it happen in the console, it would make more sense, but seeing as I can I am totally lost. Thanks for the help -- Posted via http://www.ruby-forum.com/. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users