megutech

自身の備忘録として主にWEBサーバー周りの技術について投稿しています。

Ruby on Rails

Rspecでsessionにダミーデータを入れたい

rspecでsessionにデータを入れてテストしたいシーンがあるかと思います。 ぱっと調べた感じだと方法が古いのか上手くいかないものが多かったので、動くものを備忘録として記事化しようと思います。 環境 Service Version Ruby 3.3.2 Ruby on Rails 7.1 rspec…

ruby-handlebarsのプレースホルダーに日本語を使いたい

handlebarsって便利ですよね。 さてプレースホルダー {{hoge}} に日本語を使いたい場面などありませんか? ありませんか。まあ普通はそうです。 しかし私にはそんなタイミングがあったのです。 handlebars.rbでは使えたのですが、さすがにこれはもう古すぎで…

Rspecテストで同時アクセスによる排他テストを行う

商品購入に同時にアクセスがあった場合、在庫数がマイナスにならないようにテストしておきたい。 そんなテストをしたいタイミングが多々あるのではないでしょうか? その際テーブルロックを利用して排他制御を行っていた場合、何も考えずにrspecでThreadを使…

Ruby on RailsでInstagram Graph APIを使いたい

Ruby on Rails上でInstagram Graph APIを使う情報が少なかったので、はまりポイントも併せて備忘録を残していく。 環境 Service Version Ruby 3.2.2 Ruby on Rails 7.0.4 devise 4.9.2 omniauth-oatuh2 1.3.1 omniauth-rails_csrf_protection 0.1.2 omniauth…

GroverでHTMLをPDFに変換したら日本語が文字化けして豆腐になっちゃった件

環境 Service Version OS Amazon Linux 2 Ruby 3.0.2 Ruby on Rails 7.0.3 grover 1.1.1 原因 Groverで使用しているpuppeteerにて日本語化対応が必要だった。 対応 日本語フォントを入れましょう。 $ sudo yum install ipa-gothic-fonts ipa-mincho-fonts ip…

Ruby on RailsでreCAPTCHA Enterprise を使いたい

無料版と有料版のreCAPTCHAとがありますが、使い方は一緒かと思ったら違ってちょっと大変だったお話。 環境 Service Version Ruby 2.7.4 Ruby on Rails 6.1 recaptcha 5.8.1 前提 Gemはrecaptchaを使います。 通常のreCAPTCHAなら下記用意しておけば、後はド…

Devise OmniAuthでサービス先へリダイレクトする前にごにょごにょしたい

OmniAuth、ほとんど何もしなくてもOAuthを実装出来て便利ですよね。 でもサービス側へリダイレクトする直前にごにょごにょしたいことってありませんか? ありませんか。そうですよね、普通は。。 まあ今回は普通じゃなかったんです。リダイレクト直前にちょ…

削除したActiveStorageへのアクセスは404にしたい

画像の更新などによりActiveStorageのBlobが削除されたにもかかわらず、URLがキャッシュされていたなどの理由により削除された画像にアクセスが来た場合、下記エラーが報告される。 ActiveRecord::RecordNotFoundactive_storage/blobs#show Couldn't find Ac…

ActiveStorageの画像ファイルなどを、アンカー要素のdownload属性でダウンロードさせたい

ActiveStorageのservice_urlのdispositionオプションがデフォルトで:inlineなため、画像やpdfのアンカーにdownload属性をつけていても、ブラウザ上で開いてしまう。 これをダウンロードさせたい。 環境 Service Version Ruby 2.7.2 Ruby on Rails 6.0.3.4 S3…