Мне нужно сгенерировать QR-код и сохранить его в рельсах. Я использую rqrcode gem для создания QR-кода.
Вот как я генерирую QR-код в виде png.
def generate_qr_code(checkin_url)
qrcode = RQRCode::QRCode.new(checkin_url)
png = qrcode.as_png(
bit_depth: 1,
border_modules: 4,
color_mode: ChunkyPNG::COLOR_GRAYSCALE,
color: 'black',
file: nil,
fill: 'white',
module_px_size: 6,
resize_exactly_to: false,
resize_gte_to: false,
size: 120
)
self.update!(qr_code_image: png.to_s)
end
Проблема: У меня возникают проблемы при сохранении QR-кода в qr_code_image
.
self.update!(qr_code_image: png.to_s)
, показывающего следующую ошибку:
*** NoMethodError Exception: undefined method `map' for #<String:0x007feb358121d0>
Did you mean? tap
Четное IO.write("/tmp/github-qrcode.png", png.to_s)
, показывающее
*** Encoding::UndefinedConversionError Exception: "\x89" from ASCII-8BIT to UTF-8
Наконец я должен сохранить изображение в формате PNG в qr_code_image
, где я использую
mount_uploaders :qr_code_image, QrCodeUploader