yikegaya’s blog

仕事関連(Webエンジニア)と資産運用について書いてます

Rails

2023年時点のRailsとReactの最適な結合

RailsのプロジェクトでRailsとReactでWebサービスを作る場合観察する限り以下の2パターンかと思うのですがそれぞれどういった場合に選択するべきか自分なりの考えをまとめてみます。 Reactの場合で書いてますが多分Vueとかでも同じ考えになるはず。 パターン…

Rails製サービスにStripeで決済機能を実装してハマったこと、迷ったところ

Ruby on RailsとReactで実装、運営しているSquareEightというサービスにStripeで決済機能を実装してみて得た知見をまとめます。 https://square-eight.net/ 仕事でStripeに触れたことはあったものの他のエンジニアが実装したコードのメンテナンスをしたのみ…

バックエンドで生成したJSONを元にReactで月表示カレンダーを描画する実装

Reactで作ってるWebサービスにFullcalendarなどライブラリを使わずスクラッチでカレンダーを作ったので実装書いてみる。 前にVueでカレンダー作ったときみたいにフロントエンド側でゴリゴリ書いてこうと思ったんだけどちょっと今回は要件的にその実装方針だ…

RailsのセッションがElastiCacheに書き込めなかった時の対応メモ

RailsのセッションをAWSのElastiCache Redisで管理しようとしていたがしばらくsession_idを保存できずハマった。Railsのバージョンは7.0.2 接続できない時の確認方法の備忘録 確認方法 まずrails consoleからRedisに繋がるか確認する。 redisのインスタンス…

Railsデプロイ時の認証周りの対応メモ

最近新規で作ったRailsサービスのデプロイ作業してたら認証周りの対応が地味に面倒だったので対応メモ。 前提 JWTで認証するREST APIを提供するRailsサービス Railsのバージョンは6.1.4 AWS ECS上のコンテナで稼働 RailsはPumaで起動してNginxとsocket通信さ…

久しぶりにrails newしたので設定作業メモ

最近仕事でrails newを実行するとこからAPIサーバ2つ作った。その際の設定作業メモ 使った技術やバージョンざっくり key val Dockerのbaseイメージ ruby:3.0.2-alpine3.14 Railsのバージョン 6.1.4 DB 片方がPostgresql、もう一方がMySQL 注意点 rails newす…

Rails+ECS環境でのassets:precompileのタイミング

ECS環境でRailsを動かす時にassets:precompileを実行するタイミングとして、最初とりあえずコンテナ起動時に実行してたのを、Dockerイメージをbuildする時に実行するように変更したんだけど割と面倒だったのでメモ。 configパス以下を読んでいるらしくconfig…

RailsのECS環境を構築した時のエラー対応振り返り

Rails製のサービスを動かすECS環境をterraformで構築したんだけど結構苦労したんでハマったところ振り返ってみる。 一度Goで作ったAPIをECSで動かしたことはあったんだけどその時には踏まなかった地雷も結構踏んでしんどかった。 前提 現状EC2で稼働している…

Rails+Postgresql環境でauto incrementなカラムを作る

Rails+Postgresql環境で主キーではないauto increment(Postgresqlではsequenceというらしい)な属性をもつカラムを作る必要があってやり方迷った。で、結局こうした。 Migration内でで使えそうなRailsのAPIが見つからなかったので(こんなことそんなにやる…

wheneverからsidekiq実行

Railsアプリでwhenever(cron使って良い感じにバッチのスケジューリングをしてくれるgem)からsidekiq(redisを使った非同期処理を提供してくれるgem)のワーカー実行したかったんだけど単純に{ワーカークラス}.perform_syncをschedule.rbからなぜか実行でき…

TypeScript+jest+enzymeでのテスト環境構築

Rails+webpacker+Reactのフロントにテストコードを導入した時のメモ。結構やることがあった。。 最近はReactのテスト環境の動向調べると、テストフレームワークjestにテストユーティリティツールのEnzymeの組み合わせがメジャーっぽいので素直に採用した。…

Rails+webpacker環境で「default is not a constructor」のエラーが出た時の対応

ビデオ通話機能を実装するためにskyway-js というライブラリをRails+webpacker+Reactのサービスにインストールしたときにエラーが出て軽くハマったのでメモ。 エラー内容 Rails+webpacker+Reactの環境でyarn add skyway-jsを実行。それをimportするとこ…

Rails APIモード + Reactに入門してみる

Reactのチュートリアルをやったので、次にRailsと連携させてみた。 RailsとReactの連携方法を調べるとざっくり2パターンあって Rails側でルータやビューを作ってjQueryの代わりのライブラリとしてReactを導入する。 APIモードでRailsアプリを作って、それと…