Ruby on Rails

Ruby on Rails

CSVデータをActiveRecordにimportする際における各手法のベンチマーク

概要 RubyにおいてCSVデータをDBに挿入する際の手法による速度の違いをベンチマークCSVデータのインポート処理は業務系のWebアプリケーションを構築する際にはほぼ必ず必要となる機能なので感覚地として掴んでおくことが目的です。 ベンチマ...
Ruby on Rails

ActiveRecordでネストされたトランザクションのRollback方法

概要 ActiveRecordでトランザクションを入れ子にするケースがあり、ActiveRecordのトランザクションの処理を追ってみるとなかなか興味深かったので文章にまとめておきます。おそらく、この内容を知っておかないと排他制御を考慮した...
Ruby on Rails

Benchmarking ActiveRecord and mysql2

概要 RubyActiveRecordを使う場合と使わない場合におけるベンチマークがWebを探しても無かったので測ってみました。純粋な比較は難しいので、あくまでも参考値として見ていただければと思います。比較activerecord (5.2...
Ruby

Ruby on RailsでER図をモデルから生成

Railsの最新のER図をリバースエンジニアリングでスキーマから生成しましょう。rails-erdを使います。 docker container内でコピペでできるようにコマンドを列挙しておきます。 apt update apt-get in...
Ruby on Rails

物理メモリが不足したらpumaを自動で再起動

概要 pumaがどんどんメモリを食っていってしまう。同様に、sidekiqもたくさんメモリを食ってしまっている。GCしても減らない。 ObjectSpace.each_object(ActiveRecord::Relation).each(...
Ruby on Rails

Railsのroutesのshallowは安易に使わないで欲しい

概要 Shallowの説明はRails Guideにあるとおり。example normal: /authors/1/articles/1 shallow: /articles/1 (authorのIDはarticleのIDがわかれば自明だ...
Ruby on Rails

Railsの404エラーページをコマンド1発でクールにする

Railsのエラーページがかっこ悪い! ググっても欲しいテンプレが見つからない!ってことで、作りました。 以下のコマンドを1発叩くだけでマシなテンプレートになります。 curl | sh スクリーンショット デモ: ソースコード 適当に作っ...
Ruby

RailsにおけるTimezoneの扱い方

理論 前提として、理論に関してはこちらが良くまとまっています。Railsと周辺のTimeZone設定を整理する (active_record.default_timezoneの罠) 実践 実際、運用する場合はこちらの内容を踏まえてコーディン...
Ruby on Rails

Railsでcontroller名、action名に対応したjsファイルを読み込む

個別actionごとにjsファイルを定義したいとき。 たとえば、 app/assets//.js を対応したテンプレで読み込む。 app/views/layout/application.htmlなどのレイアウトファイルに以下のように記述。...
Ruby on Rails

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

rails newしたら、エラー。。。。