rqrcodeを利用してモデルのURLをQRコードとして生成する
はじめに
RubyでQRコードを扱おうとすると、自ずと行き着くのがrqrcodeというgemです。ニ年ほど前に更新が途絶えており、ちょっとこれ大丈夫なのかな、などと思いつつ利用してみたところ、これといって問題もなく動きました。素晴らしいですね。
実装
RailsのコントローラでQRコードを生成しよう、そして、ユーザーに生成した画像をダウンロードさせよう、といったことを考えると、どうしても#destroyの隣に、#qrcode的なアクションを定義しがちです。ですがここでは、少しばかり手間を掛けて、新しくコントローラーを作成します。
[resources]/qrcodes_controller.rbといった形で、新しくコントローラーを切りましょう。それが正しいRailsの書き方でございます。Rails界隈における神的なポジにあるDHH氏の言葉でございますから、従わない訳にはいきません。
ルーティングは以下のようになります。
上記のコントローラーにアクセスすると、対象となるモデル(Post)にアクセスする為のURLが収まったQRコードがpng画像としてダウンロードされます。