【发布时间】:2011-05-22 23:58:45
【问题描述】:
我已尝试根据先前在此处提出的有关堆栈溢出的问题进行设置,但无法使其正常工作。验证码显示在我的表单上,但用户仍然可以在不填写验证码的情况下注册。
我正在使用以下说明。 https://github.com/plataformatec/devise/wiki/How-To:-Use-Recaptcha-with-Devise
- 我有我的私人和公共 recaptcha 密钥
环境.rb
ENV['RECAPTCHA_PUBLIC_KEY'] = 'mykey1234567'
ENV['RECAPTCHA_PRIVATE_KEY'] = 'mykey1234567'
- 我已经安装了 recaptcha gem。
宝石文件
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>
-
创建注册控制器
rails 生成控制器注册创建
注册控制器
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" }
感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 devise recaptcha