Используйте библиотеку : Вы (почти) всегда лучше присваиваете код от людей, которые лучше в поддомене, чем вы. Ребята из Wordpress, стоящие за Akismet, забыли больше о спаме в блогах, чем я знаю, и я некоторое время занимался исследованием электронной почты. Возможно, вас заинтересует плагин интеграции Rails для Akismet .
Защита в разнообразии : Спам - это странная проблема: чем популярнее контрмера, тем хуже становится. Таким образом, особенно для низкопрофильных сайтов, вы можете получить отвратительно хорошие результаты, кодируя простые одноразовые проводники. Я не дам вам никакого кода для копирования / вставки, потому что он отрицает цель упражнения: наличие контрмеры, которая уникальна во всем мире.
Один простой пример - наличие скрытого элемента формы, который начинается с некоторой рандомизированной строки, и которой устанавливается код Javascript с известным хорошим значением. Затем вы подпрыгиваете от всего, что не имеет поставленной ценности. Это блокирует клиентов, которые не реализуют Javascript, который включает подавляющее большинство сценариев спама. Конечно, есть проблемы, так как некоторые законные клиенты также блокируют Javascript - но реально, если вы используете Rails, я предполагаю, что вы вроде как предполагаете, что куки включены и Javascript работает.