Я попытался настроить это на основе ранее заданных вопросов о переполнении стека, но не смог заставить его работать. На моих формах отображается капча, но пользователь все равно может зарегистрироваться без заполнения рекапчи.
Я работаю со следующими инструкциями.
https://github.com/plataformatec/devise/wiki/How-To:-Use-Recaptcha-with-Devise
- У меня есть свои закрытые и открытые ключи рекапитчи
environment.rb
ENV['RECAPTCHA_PUBLIC_KEY'] = 'mykey1234567'
ENV['RECAPTCHA_PRIVATE_KEY'] = 'mykey1234567'
- Я установил гем recaptcha.
Gemfile
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'devise', '1.1.7'
gem "jquery-rails"
gem 'recaptcha', :require => 'recaptcha/rails'
- Я добавил теги recaptcha в свое представление регистрации.
new.html.erb
<%= recaptcha_tags %>
<p><%= f.submit "Sign up" %></p>
Контроллер созданных регистраций
Рельсы генерируют контроллер Регистрации создают
Контроллер регистрации
class RegistrationsController < Devise::RegistrationsController
def create
if verify_recaptcha
super
else
build_resource
clean_up_passwords(resource)
flash[:alert] = "There was an error with the recaptcha code below. Please re-enter the code and click submit."
render_with_scope :new
end
end
end
Я должен отредактировать файл маршрутов, но не уверен, что именно может быть причиной проблемы.
Файл моих маршрутов
devise_for :troopers, :path => "troopers", :path_names => { :sign_in => "login", :sign_out => "logout", :sign_up => "register" }
Спасибо за любую помощь.