→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
はじめに ゼネットの土屋です。 先日 2025/10/22 に Rails 8.1.0 がリリースされました。 今回の記事では、Rails 8.1 で追加された注目機能 Structured Event Reporter を紹介します。 これは「Rails.logger」と「ActiveSupport::Notifications」を進化的に統合し、アプリケーションの“観測性”を大きく高める仕組みです。 Structured Event Reporter(Rails.event) とは これまで Rails.logger や ActiveSupport::Notifications などに分散…
やっとブログが完成しました! rails newしたのが10/10でしたので、見せられる状態になるまで9日掛かりました。 自分の見積もりは1週間くらいかなと思っていたのですが、 API周りのコードやフローで苦労したので、ちょっと長くかかってしまいました。 よかったら見てください→https://blog-new-owzi.onrender.com githubはこちら github.com 今回ははてなAPIのサービスクラスの設計について記事にします。 基本概念 サービスクラスってなんなの?なんで必要なの? サービスクラスは一言で言うと、「別サービスから受けとったデータや複雑なビジネスロジック…
はじめに この記事では、RubyでCSVを読み込むときに converters: :integer を指定したことで起きた予期せぬ挙動について紹介します。 RubyでCSVクラスを使って、読み込みを行っている方はぜひ参考にしてください 背景・動機 CSVを読み込んでデータベースに登録する処理を作成していました。 CSV.read を使う際に、便利そうなオプションとして converters: :integer を指定してみたところ、 電話番号のデータが意図しない値に変換されてしまうという現象に出会いました。 調べてみると、Rubyの数値変換 (Integer() / to_i) に関係する仕様…
はじめに こんにちは!OPTiM Biz 開発チームの石原、河合、Optimal Remote 開発チームの市川、OPTiM ID 開発チームの吉村です。今回はオプティムから 4 名で Kaigi on Rails 2025 に参加してまいりましたので、会場の雰囲気や内容をレポートします! Kaigi on Rails 2025 について Kaigi on Rails 2025 は、Ruby on Rails を中心とした技術カンファレンスで、「初学者から上級者までが楽しめる Web 系の技術カンファレンス」というコンセプトで運営されています。Kaigi on Rails は 2020 年から…
Rails World 2025 参加レポート こんにちは、hsbtです。Ghost of Yōtei の発売日が近づいてきて、北海道出身者として羊蹄山や各エリアがどのように表現されるかを待ちきれない日が続いています。羊蹄山、といえば子供の頃に父親と一緒に登頂し、霧で何も見えなかった山頂付近が山小屋で休憩したあとはとても綺麗な景色が広がっていた、という記憶がうっすらとあります。 さて、2025年9月4日から5日にかけて、オランダ・アムステルダムの Beurs van Berlage という歴史あるホールで開催されたRails World 2025に参加しました。 会場風景 本カンファレンスは、…
はじめに この記事では、Ruby/Railsのメモ化 をハンズオンで確認します。 「メモ化をすると内部で何が起きるのか?」という疑問に対して、低レイヤ(参照・割り当て・GC)の視点で手を動かして確かめます。 背景・動機 Rails で I/O(DB/HTTP)を伴う処理にメモ化が効くのは直感的に分かります。同じ結果を再利用できれば、DB への複数回アクセスを避けられるからです。 一方で、I/O がない純計算でも「毎回新しいオブジェクトを確保→破棄(GC)」を繰り返すと、割り当て回数や GC 負荷が増えて遅くなります。 内部で何が起きているのかを具体的に理解するため、今回の記事を書きました。 そ…
先日、Railsのtransactionのrequires_newオプションを知りました。 techracho.bpsinc.jp tech.smarthr.jp 記事などを見れば理解できるのですが、(非推奨の):joinableと混同して「どっちだっけ?」となるので自分なりに表にまとめて整理しました。 まとめ No. requires_new 例外の種類 ロールバックする処理 親 子 1 false false AR:Transaction 子の処理もロールバックしない 2 true false AR:Transaction 子の処理もロールバックしない 3 false true AR:Tr…
前回に引き続き、better_errors gemによって想定とは違う挙動をしていた体験をしたので、記事にしました。 ↓参考: 前回の記事 blog.m-ito27.com ↓better_errors github.com 背景: Rails7.1から例外のデフォルトログレベルがWARNになった 先日、とあるWebアプリのRailsアップグレード(Rails7.1→Rails8.0)をしていました。 config.load_defaultsが古かったので、Railsに合わせて引き上げる作業をしていたのですが、Rails7.1からconfig.action_dispatch.debug_exc…
目的 方法 問題 原因 解決方法 結果 目的 DelayedJobのリトライ試行中はSentryからの通知を抑制し、最後までリトライをしてエラーになれば通知するようにしたかった。 方法 Sentryには delayed_job.report_after_job_retries という設定があり、これを true にすることでリトライ中にエラー通知はしないようにできる。 docs.sentry.io 問題 以下のように設定をした。 しかし、DelayedJobの最後のリトライでエラーが発生しても通知が来なくなってしまった。 それどころか、これまで3回リトライしてエラーがあれば3回通知が来ていたの…
はじめに Rails 7.1.2 で 非カラム属性(non-column-backed attribute)に対して enum を再び使えるようになりました。ところが、この変更はブログ等であまり解説されておらず、理解に時間がかかったため、自分用の整理も兼ねて記事化します。 単なる使い方だけでなく、attribute/enum を どのクラス(モジュール)が提供しているのか まで掘り下げ、ActiveRecord と ActiveModel の役割もあわせて整理します。 背景・動機 実務コードで「非カラム属性に enum」のパターンを見かけ、意味が掴めず調査に時間がかかりました。実際のコードは出…