Gem 有没有生成二维码的 gem

gerry1004 · 2015年02月09日 · 最后由 lovecoder 回复于 2016年04月13日 · 7240 次阅读

各位大侠有谁能提供一个生成二维码的 gem

https://github.com/whomwah/rqrcode 我用过,挺好用的,不过我觉得这种服务还是放到前端比较好

@neverlandxy_naix 有个问题请教一下

qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h )

其中的'my string to generate'换成https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN 然后,会报错code length overflow. (540>288) 之后我把 size 改成了 8 之后可以显示,但是扫这个二维码没什么反应啊。

https://github.com/jeromeetienne/jquery-qrcode 前端插件,canvas 和 table 两种方式

#3 楼 @gerry1004 这个涉及到二维码的规范,去找找相关二维码规范资料就明白了

#3 楼 @gerry1004 那个库有 bug, 试试这个:

gem 'rqrcode-with-patches', require: 'rqrcode'

完整代码示例:

class QrcodesController < ApplicationController
  def show
    str = params[:str].to_s
    max_length = 200
    if str.length > max_length
      render nothing: true, status: 404
      return
    end
    require 'rqrcode/export/png'
    qr = RQRCode::QRCode.new(str)
    response.headers['Cache-Control'] = "public, max-age=#{12.hours.to_i}"
    response.headers['Content-Type'] = 'image/png'
    response.headers['Content-Disposition'] = 'inline'
    render :text => qr.as_png
  end
end

代码从开源项目 wblog 取出。

#3 楼 @gerry1004 另外,第一个 gem 包生成的是字符串,不是图片,第二个 gem 包生成的才是图片. @MrPasserby 正解,放在前端做才是正解

@neverlandxy_naix 试了几下,确实放在前端才是王道。

@lyfi2003 感谢,我也去试试。

前段处理吧,jq 插件

用第三方服务:

或者前端生成: https://github.com/davidshimjs/qrcodejs

很有帮助,刚好需要二维码生成。

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