→Ruby on Rails RubyによるWebアプリケーションフレームワーク RoR
Agile Web Development with Rails
10分で作るRailsアプリ for Windows http://masuidrive.jp/rails/
Ruby on Rails公式サイトの採用サイト紹介ページ http://wiki.rubyonrails.org/rails/pages/RealWorldUsage
こんにちは、タイミーでバックエンドのテックリードをしている新谷(@euglena1215)です。 Rails アプリケーションの開発をしていると、fat になってしまった Sidekiq worker や、ドメインロジックらしき実装が書かれている Serializer に遭遇したことがあるのではないでしょうか。 この記事では、MVC アーキテクチャを一段階抽象化して捉えることで、Rails のさまざまなレイヤーに対して一貫したプラクティスを適用する考え方を紹介します。ある程度 Rails を触ったことのあるエンジニアが感覚的に理解している概念を、改めて言語化したものです。 MVC の役割を改め…
こんにちは!Webアプリケーションエンジニアのレミーです! この記事はEnigmo Advent Calendar 2025の24日目の記事です。 Ruby on Rails アプリが遅いと感じるのは、ほぼ次の3の原因になります。 DBクエリが多すぎる(特に N+1、COUNT/EXISTS の使い分けミス、インデックス不足) 不要なデータを読み込みすぎる(テーブル全て/重いカラム全て取得、あるいは全部を RAM に書き込む) ビューのレンダリング/コールバックが働きすぎる(partial の多用、重いフォーマット処理、不要なコールバック/バリデーションの実行) この記事では、効果が見えやすい…
この記事は TimeTree Advent Calendar 2025 の 24 日目の記事です。 こんにちは。実は TimeTree に転職していました。何か転職記事を書かねばなと思いつつ光陰矢の如し、とりあえずこちらを御覧ください。 note.com TimeTree 社内では Rody というニックネームでやってます。どちらで呼んでもらっても OK ですので引き続きよろしくお願いします。 さて、アドベントカレンダーということで久々に技術記事を書きます。ここ最近は AI 関連の勢いがすごいですね。なので自分もいっちょ AI 系のあれこれを書いてやろうかと思ったのですが、力及ばず収集がつかな…
こんにちは!Webアプリケーションエンジニアのレミーです! この記事はEnigmo Advent Calendar 2025の21日目の記事です。 Rails 8がリリースされてから、バックグラウンドジョブシステムである Solid Queue に興味を持ち、調べてみました。 バックグラウンドジョブは、Ruby on Railsアプリケーションに重要な部分です。メール送信、画像処理、データ同期、キャッシュ更新、CSVファイルのエクスポートなど、これらはすべてアプリケーションの高速化とスムーズな動作を維持するために非同期で実行すべきタスクです。 長年、Railsのバックグラウンドジョブにおいて「…
プレセナ・ストラテジック・パートナーズ AdventCalendar2025 19日目の記事です。 qiita.com こんにちは、プレセナのエンジニアの田中です。 弊社のRailsプロダクトではテストフレームワークに rspec を採用しています。 また、テストコードはGitHub Actions上で自動実行するようにしています。 プロダクトを開発する中で出てきた課題感として、「CIの実行完了まで時間がかかっており、待ち時間が発生する」という課題がありました。 この課題の対策として、CI上でのテストで parallel_tests を導入しました。 その結果20分以上かかっていたCIの実行時…
結論 標題どおり。 根拠 README より。 ridgepole v3.0.0 Support Rails 8.0 (cf. https://github.com/ridgepole/ridgepole/pull/504) ... SQLite does not support. 余談 SQLite ではまっさらな状態からの作成は成功するが、以降エラーの連発で小一時間ハマった…
はじめに ゼネットの土屋です。 Rails 8.1 が正式リリースされてから 2 か月ほど経ち、 実際に運用してみると様々な挙動の変化が見えてきました。 今回はその中でも、Rails 8.1 の変更によって実際に発生した CSV 出力の列順が変わってしまう問題について紹介します。 db/schema.rb のカラム定義が アルファベット順 に並ぶようになった この仕様変更は以下のコミットで導入されました: github.com 何が起こるのか? 例えば users テーブルが次のように定義されていたとします: 従来(Rails 8.0 まで) id name age created_at up…
こんにちは!YOUTRUSTでWebエンジニアをしている春日(YOUTRUST / X)です。 気づいたら2025年も師走なので、ソースコードの大掃除の話をしたいと思います。 今回は、YOUTRUSTのサービス初期から存在し、長年にわたって蓄積してきた「旧・所属テーブル」への依存を、コードベースから完全に削除するまでの取り組みを紹介します。 以前の記事「キャリアSNS YOUTRUSTの所属データの構造を抜本的に変えた話」では、新しいデータ構造を設計し導入するまでのプロセスを説明しました。しかし、テーブルを新しく作っただけでは終わりません。 問題は、コードベース全体に旧テーブルへの依存が大量に…
RailsのRakeタスクでログ出力を共通化する方法をメモしておく。 Rakeタスクの賢いロギングを参考に改良してみる。 qiita.com 要件 Rakeタスクの開始と終了がわかるようにログを出力する Rakeタスクが途中でエラーとなったら、終了ログは出力せずに、FATALログを出力する ログ出力をするRakeタスクが簡単に実装できるようにする Rails.loggerがない場合には標準出力をする 実装 Rakeタスクのログ出力Module module TaskLogging def task(*args, &block) Rake::Task.define_task(*args) do …
はじめに OPTiM Biz の開発をしております。伊藤です。 本記事は、OPTiM TECH BLOG Advent Calendar 2025 Day 8 の記事です。 OPTiM Bizはモノリシックな Ruby on Rails で開発されており、15年近い歴史を持つサービスです。その歴史の中で、単体テストのケース数は 10万5千ケース まで成長しました。 現在、OPTiM Biz は Ruby 3.4、Ruby on Rails 8.0 で動いています。これまでの度重なるバージョンアップを支えてくれたのはこの膨大な単体テストであり、プロダクトの維持に非常に重要な存在です。 しかし、多…