##rails simple_captcha 验证码实现
###用到的gem有
1 | gem "galetahub-simple_captcha", :require => "simple_captcha" |
执行bundle
重写devise的controller方法我把devise的方法放到/admin里了
1 | devise_for :users, |
###执行下面命令安装simple_captcha
1 | rails generate simple_captcha |
生成_simple_captcha.html.erb文件,该文件为验证码的局部视图模板。修改局部视图/vews/devise/sessions/new.html.erb,添加一个切换验证码链接。
1 | <%= show_simple_captcha %> |
##注册和登陆都需要验证码,需要重构两个controller的create方法
在controllers/devise_hack/registrations_controller.rb中
1 | class DeviseHack::RegistrationsController < Devise::RegistrationsController |
skip_before_filter :require_no_authentication, :only => [:new]
只有在登陆的时候调用此方法,如果没有会一直重定向到注册页面
在controllers/devise_hack/sessions_controller.rb中
1 | class DeviseHack::SessionsController < Devise::SessionsController |
##遇到的问题:
ImageMagick: Error while running convert: convert: unable to read font
安装 $ brew install ghostscript
验证码不验证问题(具体记不清了。。)
将render换成redirect_to
##参考文章:
http://www.cnblogs.com/itmangelihai/p/3254608.html
https://github.com/plataformatec/devise/wiki/How-To%3a-Use-Recaptcha-with-Devise