Если вам не нравится ни одно из предложений @ Trott - простая замена CAPTCHA, но я не уверен, как долго (какой-нибудь изощренный злоумышленник может его взломать):
Добавьте это в свою форму:
<input name="dummy" value="" style="display: hidden"/>
Затем в коде вашего сервера
if params['dummy'].empty?
# user
else
# spambot!
end
Это зависит от спам-ботов, принудительно заполняющих неизвестные поля формы (чтобы они не пропускали обязательные поля);но пользователь никогда не увидит его и поэтому всегда будет пустым.