我試圖插入驗證碼到我的應用程序的註冊表單。大多數解決方案(ambethia/recaptcha和achiu/rack-recaptcha)我發現正在使用控制器輔助方法來檢查驗證碼是否有效。這很棒,所有的,但我使用OmniAuth身份爲我的簡單身份驗證,它不提供控制器 - 用戶的註冊表單直接發佈到OmniAuth處理程序。驗證碼解決方案使用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'
我用盡了一切可以發佈回一個自定義的控制器,然後嘗試打寄存器路徑,但沒有工作,模型驗證是不可能與任何我見過的寶石(並且違反了MVC,反正)。
我沒有卡住任何reCAPTCHA解決方案,我只需要防止自動註冊的東西。我只是把設計放在這裏並且完成它,但是我的團隊之前已經把它撕了出來,並且因爲某種原因而憎恨它。有沒有辦法在表單和omniauth-identity之間插入一個控制器,以便我們驗證,還是有另一個可以進行模型驗證的gem?