35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

Ruby

RubyのDockerイメージ上でSeleniumを動かす

Ruby界隈ではSeleniumを動かすネタが少ないので、最近作った環境について書いておこうと思う。 ChromiumとChromiumDriverを追加済みのDockerfileを作る 巷ではChromeとChromeDriverのバイナリーをcurl等でダウンロードしてインストールする方法が一般的だが…

Rails 7.1の切り戻しとALBのヘルスチェックで板挟みになった話

最近複数のプロダクトでRails 7.1への移行を行っているが、その中でRails 7.0へ切り戻しが必要になって苦労した事例があったので共有しておこうと思う。 キャッシュフォーマットの互換性について Rails 7.1 から、キャッシュに値を保存するときのシリアライ…

Rails 7.1に更新したらRSpecがフリーズする件

先の記事とは別のプロダクトでRails 7.0から7.1へアップデートしていたら、今度はRSpecがランダムでフリーズするようになったので、これまた備忘録がてら書き綴っておく。 何が起きたのか RSpecのトランザクションを使用するテストがランダムでフリーズする…

Sentryで謎のエラーが起きたら外してみると良いかも

みんな大好きSentryだが、そのSentry自体がエラーを吐いて落ちるという珍しい?事態に遭遇したので備忘録がてら書き綴っておく。 何が起きたのか Rails 7.0から7.1へのアップデート中に、ステージング環境でのみSentryが以下のようなエラーを吐いて落ちるよ…

bootsnapに怒られた時はキャッシュを消してみるべし

k0kubun氏の記事に触発されてPryからirbに移行した所、何故かRSpecで binding.irb した時にだけエラーが発生するようになった。 何が起こったのか こんなエラーが発生するようになった。 Failure/Error: binding.irb LoadError: cannot load such file -- ir…

IntelliJでWSL上のDocker上のRubyをリモートインタープリター設定する

Windows版IntelliJ IDEA(おそらくRubyMineでもほぼ同様)を使いつつ、WSL上のDocker上のRubyを開発環境としている場合、インタープリター設定はどうするのが良いかという話。 TL;DR [Settings] - [Build, Execution, Deployment] - [Docker] でDocker設定を…

has_many :through時のdependent: :destroyの挙動

RailsのActive Recordで多対多の関連を使う時の話。ここではClubとStudentの関係を例とする。 普通に書くと、こうなると思う。 class Club < ApplicationRecord has_many :club_students, dependent: :destroy has_many :students, through: :club_students …

feature specで名前付きルートが使えなかった話

Rails 5.0とRSpec 3.6の環境下で、routes.rb のconstraintsでhostを限定した所、一部のfeature specが通らなくなった。 何が起こったのか 以下のようなspecが全部失敗するようになった。 feature 'hoge' do scenario 'fuga' do visit piyo_url expect(page).…

RailsでDevise使用時にメール認証をスキップする

Deviseでconfirmableを設定していると、管理対象のモデルを保存する際にメール認証が挟まれる。だが、場合によってはメール認証を飛ばしてメールアドレスを保存したい場合があったため、方法を調べてみた。 なお、ここでは便宜上Devise管理対象のモデルをUse…