Я согласен с MasterBlaster, это задача для контроллера.Вам также не нужен атрибут fake_field
в вашей модели.
Если вы хотите создать приманку в своей форме, просто добавьте
<%= text_field_tag :email_confirmation, :style => "display: none" %>
вэту форму.
Затем добавьте это в метод вашего контроллера, где вы хотите проверить, пытается ли бот ввести:
class UsersController < ApplicationController
def create
render :status => 200 and return unless params[:email_confirmation].blank?
# (your code)
# ...
end
end
Я также предлагаю вам переименовать ваше поле приманки во что-нибудьболее умный (например, «подтверждение по электронной почте»), поскольку боты, как правило, достаточно умны в поиске «поддельных» полей.
РЕДАКТИРОВАТЬ
Вам также не нужноСообщите боту, что его действия не увенчались успехом, нет необходимости быть вежливым.Ответьте с хорошим 200 (OK)
.Я обновил свой пост соответственно.