質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1412閲覧

rqrcode_pngでqrコードが表示できない

midoriya

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/11 03:43

編集2020/05/11 03:46

実現したいこと

Railsでファイル保存をせずにQRコードを表示させたいです。
rqrcode_pngを使って実装しようとしていたところ、以下のエラーメッセージが発生しました。

###環境
ruby '2.5.3'
rails '5.2.2'

###参考にしたページ
https://qiita.com/koteko/items/d6d033997c544c47b718

発生している問題・エラーメッセージ

png= qr.to_imgの行に対して

undefined method `dark?' for #<RQRCode::QRCode:0x00007fd15e5f1608>

該当のソースコード

ruby

1class ReviewsController < ApplicationController 2 require 'rqrcode' 3 require 'rqrcode_png' 4 require 'chunky_png' 5 before_action :authenticate_user, {only: [:index, :show, :destroy, :share]} 6 7=省略= 8 9def share 10 @concert = Concert.find(params[:concert_id]) 11 qr = RQRCode::QRCode.new(new_concert_review_path(@concert), :size => 4, :level => :h ) 12 png= qr.to_img 13 @qr_base64 = png.resize(200, 200).to_data_url 14end 15 16=省略= 17 18end

試したこと

gemfileに以下の3つがきちんと追加されているのは確認しました。
'rqrcode'
'rqrcode_png'
'chunky_png'

rqrcodeの配布元(https://github.com/DCarper/rqrcode_png)を見ていて、
rqrcode_png /lib /rqrcode_png /sequence.rb にエラーに出ていた**.dark?**のメソッドがあるなぁというのは見つけました。

module RQRCodePNG
class Sequence
def initialize(qr_code)
@qr_code = qr_code
end

# This method yields the vertices of the dark squares def dark_squares_only(&block) @qr_code.modules.each_index do |row| @qr_code.modules.each_index do |column| if @qr_code.dark?(row, column) yield row, column end end end end # returns the image size by looking at how long the first line of the code is def img_size @img_size ||= @qr_code.to_s.split("\n").first.size() end # Returns the border, 1/10 of the img size def border_width() @border ||= img_size() / 10 end

end
end

QRコードにしたい情報の部分に問題があるのかと思い、簡単な文字列に置き換えてみたりもしましたが、同じエラーが出ます。.to_imgの部分に何かあるのだと思っていますが、他に渡すパラメータは変わったことはしてないので、何が原因かわかりません…。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

RQRCode 1.0では、それ自体にPNG出力機能があります(公式)。1.0.0未満のRQRCodeに依存しているrqrcode_pngは、もはや不要かと思います。

ruby

1qrcode = RQRCode::QRCode.new("http://github.com/") 2 3# NOTE: showing with default options specified explicitly 4png = qrcode.as_png( # 後略

投稿2020/05/11 05:09

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

midoriya

2020/05/11 06:01

迅速な回答本当にありがとうございます。 無事QRコードを表示させることができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問