新手问题 OS X 下 simple-captcha 验证码无法出来

ShayneChow · 2014年10月11日 · 最后由 ShayneChow 回复于 2014年10月11日 · 3962 次阅读

维护老项目出现的验证码失效问题 问题如图: 验证码失效

#SimpleCaptchasController

  def remote_valid
    result = if params[:value]
               data = SimpleCaptcha::Utils::simple_captcha_value(params[:key] || session[:value])
               data == params[:value].delete(' ').upcase
             else
               false
             end
    render json: {pass: result}, layout: false
  end

线上可以使用,本地项目失效,很久没有碰 rails,到哪都是坑,求解救!

是不是本地没有装 imagemagick?

看控制台 Rails log, 里面有错误信息的

#1 楼 @lgn21st 本地是由 brew 管理的imagemagick

#2 楼 @huacnlee 查看了一下:

Started GET "/simple_captcha?code=1e677a3ff3a2f63e5c7520cd50da9a5b6912f7a8&time=1413007665" for 127.0.0.1 at 2014-10-11 14:07:45 +0800

StandardError - Error while running convert: convert: unable to read font `(null)' @ error/annotate.c/RenderFreetype/1127.
convert: unable to read font `(null)' @ error/annotate.c/RenderFreetype/1127.
convert: no images defined `/var/folders/x3/b2ts00p52mqf09qgcsjr0mw80000gn/T/simple_captcha20141011-2604-157eirt.jpg' @ error/convert.c/ConvertImageCommand/3187.
:
  /Users/ShayneChow/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/gems/2.0.0/bundler/gems/simple-captcha-2602bf19a63d/lib/simple_captcha/utils.rb:17:in `run'
   () Users/ShayneChow/.rvm/gems/ruby-2.0.0-p451@global/bundler/gems/simple-captcha-2602bf19a63d/lib/simple_captcha/image.rb:78:in `generate_simple_captcha_image'
   () Users/ShayneChow/.rvm/gems/ruby-2.0.0-p451@global/bundler/gems/simple-captcha-2602bf19a63d/lib/simple_captcha/middleware.rb:36:in `make_image'
   () Users/ShayneChow/.rvm/gems/ruby-2.0.0-p451@global/bundler/gems/simple-captcha-2602bf19a63d/lib/simple_captcha/middleware.rb:18:in `call'

……
需要 登录 后方可回复, 如果你还没有账号请 注册新账号