Rails

会社のブログに記事を書いた 2

またしても書きました。 developers.bookwalker.jp 会社でやっていることを書けるのは会社ブログだけ。 それを引用しつつ自分がやった範囲を書けるのは自分のブログだけ。 読書メーターは僕が当時のトリスタに入って最初に関わったサービスでした。 そのため…

会社のブログに記事を書いた

書いてました。 developers.bookwalker.jp 会社でやっていることを書けるのは会社ブログだけ。 それを引用しつつ自分がやった範囲を書けるのは自分のブログだけ。 この記事のうち僕が直接関わったのは TerraformによるAWSリソースの構築 現行PHPについてのEC…

マルチDBでリードレプリカを有効にしたAPIモードのRails7において書き込み系リクエストが失敗する事象の対処方法と原因

掲題の通り、 APIモードのRails7 セッションストアは未設定 ActiveRecord::Middleware::DatabaseSelector::Resolver を使ってマルチDBでプライマリとリードレプリカの自動切換えをしている POST, PATCH, PUT, DELETEリクエストにおいて500エラーが返る ログ…

会社のテックブログで記事を書いた

inside.trista.jp inside.trista.jp 書きました。 2020年の振り返り記事にもちらっと書いた通り、 自分がWebサービス開発者として働いていて、そのキャリア的な何かについて考えたときに、 自分が何ができるのかを出力しておかないと転職するしない以前に自…

ActiveModel::Validatorのインスタンス変数にオブジェクトをメモ化してはならない

タイトルの通り。 実は以前にも踏んだことがあるのだけれど、しばらく期間が開いてまた踏んでしまったので書き残しておくことにする。 ActiveModel::Validatorを継承するValidatorなんて日常的に書くわけではないのでたまに踏んでしまうのは仕方ないという話…

Rails6においてはapp/models/concernsなどのconcernsディレクトリ配下に置かれたファイルの名前空間がConcerns配下にならない

はい。タイトルの通りです。 仕事中、Rails6を使っているプロダクトでモデルの共通処理をConcernへ切り出そうとしたところ、 何度やってもオートロードに失敗してしまっているかのように見える事象に遭遇しました。 # app/models/concerns/models/hogerable.…

Rails6のマルチDBで、普段は参照しないスロークエリ用リードレプリカからデータを読み出す

マルチDB設定をしたRails6で、普段参照するリードレプリカとも異なる、分析クエリ用リードレプリカからデータを読み出すにはどうすればよいかという話。 Rails6.0のマルチDB設定はリリース後に微妙にインターフェイスが変更されていて今となっては推奨されな…

条件に日時を使うような境界値テストのrequest specにrspec-parameterizedとRailsのfreeze_timeまたはTimecopを組み合わせると落ちる

はい。 皆様ご存知、rspec-parameterizedというgemがあります。 複数入力の組み合わせで出力が決まるような、素のまま書くとcontext地獄になってしまうテストを短く書けて便利なやつです。 github.com なんですが、仕事のプロダクトのrequest specにおいて、…