rails

【Rails】sqlcommenterのデモアプリを試してみた

先日2021/1/29にGoogle Cloudのブログでリリースが発表されたSqlcommenterのRuby on Railsデモアプリを触ってみたので、試した手順と感想を書いてみたいと思います。 cloud.google.com sqlcommenterとは sqlcommenter の文章を引用すると sqlcommenter is a …

【Rails】範囲オブジェクト(Range)を使ったActiveRecordのwhere比較、範囲検索のコードの書き方

ActiveRecordのwhere比較、範囲検索は、最近では範囲オブジェクト (Range (例: 10..30)) を使ってほとんど実装することができるようになっています。

RailsプロジェクトでVisual Studio Code Remote Container使ってみた

コンテナ内のファイルシステムを直接触れるVisual Studio Code Remote Containerを使い始めたのですが、手間を減らしつつも便利開発できていそうな感じがしています。 シンプルなRuby on railsアプリケーションを例に取って導入方法を紹介したいと思います。

Railsプロジェクトでvue.js + typescriptを使うためのts-loaderの設定

Webpacker gemを導入したRailsプロジェクトにtypescript+vue.jsを導入した時に調べたことのメモ記載しておきます。 TypeScript/vueのインストール/設定 Vue-loaderの動き PnpWebpackPlugin.tsLoaderOptionsについて Pnpとは? PnpWebpackPlugin.tsLoaderOptio…

Rails権限管理ライブラリ cancancan gem バージョンアップ(2.x => 3.x)の際の対応と注意点

Ruby on rails の権限管理ライブラリの中で一番ダウンロード数が多いGemであるcancancanのv3.0が2019年4月にリリースされました。 仕事のプロジェクトで使っているcancancanのバージョンは随分前にv3.0に上げていたのですが、結構大きな変更が入っていること…

Rails bulk insertのパフォーマンス比較 (Railsのinsert_allとactiverecord-import)

Railsでbulk insertする方法は主に Rails6のinsert_all activerecord-import gemのimport の2つの方法があります。パフォーマンス観点では、どちらが良いのか知りたくて検証してみました。 activerecord-importに関しては、READMEを読む限り、いくつかimport…

Rails6アプリのデプロイ時にヘルスチェックに失敗した時にやったこと

先日、稼働しているRailsのWebアプリケーションをRails5.2から6.0に上げて本番デプロイしようとした際に、ヘルスチェックに失敗していてデプロイできない状態になっていたのですが、そのときに対応した内容を書いてみます。 何が起こったか まず、AWS EC2イ…

Rails と Firebase Authentication でJWT認証実装してみた

最近スマホアプリの開発は大体firebaseを使うようになっていて、認証もfirebase authenticationを使っておけば、実装がすごく楽になっていると感じます。 既にRuby on railsでwebアプリケーションを開発していて後からJWT認証を付けようとするとちょっと面倒…

【Rails】ビューに date_select や date_time_select を使ったフォームで UnknownAttributeError が発生する場合の対処

利用ケースは少ないと思いますが、ActiveRecord::Base を継承しないフォームと date_select や date_time_select を使ったビューの組み合わせだと、フォーム初期化時に UnknownAttributeError が発生していて、原因と対処方法がよく分からず若干ハマってしま…

Github actionsでRuby on railsプロジェクトのRspec / System test CIを動くようにしてみた

8月8日にGithub actionsでCI実行できるようになったと発表があってから早くも1ヶ月、先日ようやくbetaの申し込みが通って触れるようになったので、Ruby on railsのプロジェクトでRspecが動くようにしてみました。 作ったプロジェクトはこちらです。よかった…

JMeter で Rails のCSRFトークンを取得する方法

JMeterでRailsアプリケーションの負荷テスト作ると、サーバ側にCSRFトークンが渡ってないために、フォームを使った登録処理のテストが失敗します。 それを回避するために、JMeterでCSRFトークンの取得し、登録操作などのリクエストにトークンを渡す必要があ…

JMeter を使った ActionCable ( WebSocket ) 負荷テストの設定方法

最近、Railsアプリケーション開発でもReact.jsやVue.jsなどを使ったフロント開発の案件が増えてきました。 比較的規模が大きなシステムでは リリース前にどの程度の高負荷まで耐えられるか リリース後でもステージング環境でどの程度の高負荷まで耐えられる…

rack-mini-profiler gemの使い方・指標の見方・問題箇所の絞り込み方法

Railsアプリケーション開発でパフォーマンスモニタリング、パフォーマンスチューニングやってますか?? New relicを始め、DatadogやSkylightなど便利なモニタリングサービスがたくさんあるので使ってはいるけれど、イマイチ使いこなせていない状況ではない…