我正在尝试在我的应用程序注册表中插入验证码。我发现的大多数解决方案(ambethia/recaptcha和achiu/rack-recaptcha)都使用控制器辅助方法来检查验证码是否有效。这很好,但我使用 OmniAuth-identity 进行简单的身份验证,它不提供控制器——用户的注册表单直接发布到 OmniAuth 处理程序。
= form_tag "/auth/identity/register", id: 'loginform' do
= error_messages_for @identity, :header_message => ""
%table
%tr{colspan: 2}
%td
= label_tag :title
= text_field_tag :title, @identity.try(:title), size: '32'
%tr
%td
= label_tag :first_name, nil, class: 'required'
= text_field_tag :first_name, @identity.try(:first_name), size: '32'
%td
= label_tag :last_name, nil, class: 'required'
= text_field_tag :last_name, @identity.try(:last_name), size: '32'
%tr
%td
= label_tag :email, nil, class: 'required'
= email_field_tag :email, @identity.try(:email), size: '32'
%td
= label_tag :phone, nil, class: 'required'
= text_field_tag :phone, @identity.try(:phone), size: '32'
%tr
%td
= label_tag :password, nil, class: 'required'
= password_field_tag :password, nil, size: '32'
%td
= label_tag :password_confirmation, nil, class: 'required'
= password_field_tag :password_confirmation, nil, size: '32'
%tr
%td{colspan: 2}
= label_tag 'recaptcha', "Captcha", class: 'required'
= recaptcha_tags
%tr
%td{halign: 'right', colspan: 2}
= submit_tag 'Register', class: 'button'
我已经尝试了一切,从回发到自定义控制器,然后尝试点击注册路径,但这没有用,我见过的任何 gem 都无法进行模型验证(无论如何都违反了 MVC) .
我不拘泥于任何 reCAPTCHA 解决方案,我只需要一些可以防止自动注册的东西。我只想把设计放回这里并完成它,但我的团队之前已经把它撕掉了,出于某种原因讨厌它。有没有办法在表单和omniauth-identity之间注入控制器以便我们可以验证,或者是否有另一个可以进行模型验证的gem?