I came across the same issue. I was trying to accomplish exactly the 
same thing like the original poster (make sure that association is with 
an actual record in the DB). I came across the same issue too, and after 
a little debugging the core the solution is to use Proc.

This has to do with loading mechanics, IMO: when you run the spec, first 
the model definition is loaded, there are no records in the DB yet, so 
:in option is just empty array (I debugged this to be true). But if you 
use Proc in that place, then the query to get records from DB is 
executed "lazily"; by that time your spec has correct context setup 
(manufacturers table populated) and thus you get correct behavior from 
spec.

In your case you should use:

validates :manufacturer_id, :inclusion => {
  :in => Proc.new { Manufacturer.all.collect { |m| m.id } }
}

-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to