LoginSignup
1
1

More than 3 years have passed since last update.

RailsでQRコードを生成

Last updated at Posted at 2021-03-06

前提条件

・ruby 2.6.6
・rails 6.0.3.4
・macOS Catalina バージョン10.15.7

概要

 webアプリ内で一般的な会員システムに搭載されているmyQRコードを作成したいと思い、実装したので忘れないようここに残すことにした。
 難しいことは特になく、比較的簡単に実装が完了した。

gemの導入

 webアプリ内にQRコードを生成させるためには
・gem 'rqrcode'
・gem 'chunky_png'
 の2つを導入する必要がある。

Gemfile
gem 'rqrcode'
gem 'chunky_png'
ターミナル
bundle

これで前準備は完了。
次にコードを書いていく。

QRコードを生成させる

 今回は個人的な理由だが、各ユーザーのマイページに設置したいため、user_helper.rbにコードを記述する。

app/helpers/users_helper.rb
module UsersHelper
#ここから
require 'chunky_png'

  def qrcode_tag(url, _options = {})
    qr = ::RQRCode::QRCode.new(url)
    ChunkyPNG::Image.from_datastream(qr.as_png.resize(250, 250).to_datastream).to_data_url
  end
#ここまで
end

 引数でurlを渡すことで、pngを生成する。
 また注意して欲しいのが、gemを導入しているときはターミナルでwebアプリを再起動してからじゃないと、エラーが起きてうまく作動しないので注意。(自分も忘れていて何でエラーが起きているかわからなかった。)

Viewに表示させる

 QRコード生成の準備ができたので、ViewでQRコードを表示させるコードを書いていく。自分の場合は何度もいうがマイページに設置したいので users/show.html.erb に記述していく。

users/show.html.erb

<%= image_tag qrcode_tag url %>

とは言っても表示させたい場所に上記のコードを記述するだけで完了。
urlの部分に、生成されるQRコードを読み取ったときに遷移させるページのURLを記述すれば、読み込んだときにそのページに遷移するQRコードが生成される。以上。

参考文献

・QRコードの生成・埋め込み
 https://qiita.com/koteko/items/d6d033997c544c47b718
https://github.com/whomwah/rqrcode
https://github.com/wvanbergen/chunky_png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1