Ruby学習21日目:gemパッケージのインストールと利用
イベントが終わったので、再びrailsと格闘。
次に実現するのは、取り置きしたアイテムを引き取るために必要なQRコードの表示です。
QRコードをいわゆる引き取り証明のように使おうというわけです。
予約者はQRコードを見せるだけ、サークル側はQRコードを読み取るだけで取引完了となるわけです。
このQRコード表示はrailsに備わっているものではないので、拡張しなければなりません。
で、ぐぐってみると、ありがたいことにQRコードを表示するための機能をgemで提供してくださっている方を発見!
GitHub - whomwah/rqrcode: A Ruby library that encodes QR Codes
今回はこちらを利用。
説明にある通りに、「gem install rqrcode」をコンソールから実行し、インストールを確認。
で、後はcontrollerにコードを書くだけ……なのですが、何故か「cannot load such file -- rqrcode」と言われてしまいます。
エラーを直訳すれば、そんなファイルは見当たらないってことなので、推測される理由は
・インストールが上手くいっていない
・インストールしたところにパスが通ってない
がセオリーなわけで、もう一回インストールしたり、rails serverを再起動したりしたのですが上手くいかず。
「インストールが上手くいっているかどうかをコマンドで見てみよう」と思い立ち、コマンドから「gem list」を実行。
ちゃんと「rqrcode(0.10.1)」が出てきたので、インストールは上手くっていることが判明。
てことは、パスが通ってないのか……と調べていくと、Gemfileという、gemを管理しているファイルが存在していることが判明。
開いてみると、sqliteとかrailsとか書いてありますが、rqrcodeがいないじゃないですか。
ここに「gem 'rqrcode'」を書いて再起動、「cannot load~」は出なくなりました!
QRコードに埋め込む文字は「(引き取り用のURL)/(予約番号)」の形式。
これを展開するのはViewなので、Viewに以下のように記述。
これにより、自分が取り置きしたアイテムのQRコードが画面描画時に生成され、こんな感じの画面が出来ました。
なんかQRコードが巨大で幅が広い気がするけど、読み取るとちゃんと意図した文字列を埋め込んでいます。
これでgemパッケージを使う方法が分かったので、次のステップに進めます!