记录:用rails做qrcode_png

做二维码功能,需要先用gem 'rqrcode_png'(这个gem是基于rqrcode)去生成二维码原文件(string)。再用gem 'dragonfly', '~> 1.1.1'去生成一个二维码的PNG格式图片。

这个功能的重点就是去生成二维码的图片。dragonfly给出来的文档也不是很丰富. 首先安装这两个gem。输入rails g dragonfly。 在resume的model插入column

class Resume < ActiveRecord::Base 
  dragonfly_accessor :qrcode_image
end

下面是最关键的步骤是生成支撑qrcode_image的两个栏位

class AddQrcodeImageToResume < ActiveRecord::Migration[5.0]
  def change
    add_column :resumes, :qrcode_image_name, :string
    add_column :resumes, :qrcode_image_uid, :string
  end
end

在你想生成二维码的地方插入

qr_code_img = RQRCode::QRCode.new("http://www.jianliheike.com/user/resumes/#{@resume.token}/wechat_preview", :size => 7, :level => :m ).to_img
@resume.update_attribute :qrcode_image, qr_code_img.to_string

这里生成的二维码如果信息过大是生成不了的,:size => 7, :level => :m可以调节这个里解决这个问题。 显示图片 <%= image_tag @resume.qrcode_image.url %>


1