I have an array @horses = [] that I fill with some random horses.
How can I check if my @horses array includes a horse that is already incl
Why not do it simply by picking eight different numbers from 0 to Horse.count and use that to get your horses?
offsets = (0...Horse.count).to_a.sample(8)
@suggested_horses = offsets.map{|i| Horse.first(:offset => i) }
This has the added advantage that it won't cause an infinite loop if you happen to have less than 8 horses in your database.
Note: Array#sample is new to 1.9 (and coming in 1.8.8), so either upgrade your Ruby, require 'backports' or use something like shuffle.first(n).