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 updateapt-get insta...
Ruby on Rails

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

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

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

概要Shallowの説明はRails Guideにあるとおり。examplenormal: /authors/1/articles/1shallow:/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したら、エラー。。。。