Starting with version 4.4, the following works for me ...
factory :rating do ranking {rand(1..10)} recipe end
And for a slightly different use of randomization:
FactoryGirl.define do factory :plan do name {["Free", "Standard", "Enterprise"].sample} price {Faker::numerify('$##')} end end
By creating multiple instances, you can see the name randomization and price randomization:
2.0.0-p247 :010 > 4.times.each {FactoryGirl.create(:plan)} 2.0.0-p247 :011 > ap Plan.to_list [ [0] [ [0] "Free: $48", [1] BSON::ObjectId('549f6da466e76c8f5300000e') ], [1] [ [0] "Standard: $69", [1] BSON::ObjectId('549f6da466e76c8f5300000f') ], [2] [ [0] "Enterprise: $52", [1] BSON::ObjectId('549f6da466e76c8f53000010') ], [3] [ [0] "Free: $84", [1] BSON::ObjectId('549f6da466e76c8f53000011') ] ]
Jon kern
source share