→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
この記事でわかること 未経験〜業務で使えるようになるまで、フェーズ別に使うべき無料Rails学習資料 業務開始後に使うべき資料(Railsガイド・Gem README等) それぞれをNotebookLMに入れる具体的な方法 技術書をKindle Unlimitedで読む費用対効果の話 「資料を集めて終わり」にならないための壁打ちワークフロー Railsの学習で困るのって、情報の多さじゃないかと思います。Progate・Railsチュートリアル・Railsガイド・Qiita・技術書・YouTube——どこから手をつければいいのかわからない。 しかも資料によって「対象フェーズ」が全然違うんですよね…
この記事でわかること RailsエンジニアがNotebookLMを使うべき具体的な場面 エラー解決・ドキュメント読解・コードレビューへの活用法 コピペで使えるRails特化プロンプト集 「調べる時間」を減らして「実装する時間」を増やすワークフロー Railsって、独自のメソッドや実装パターンが本当に多いんですよね。同じことをやるにも書き方が何通りもあって、「どれが正しいのか」「なぜそう書くのか」がわからないまま進んでしまうことがある。 そしてQiitaで検索しても、バージョンが古かったり自分の状況と微妙に違ったりで解決しないことが多い。結局「公式ドキュメントを読め」となるんですが、Railsガ…
Active Record の基礎 2.1 命名規約 Active Record の基礎 - Railsガイド Railsでは、データベースのテーブル名を探索するときに、モデルのクラス名を複数形にした名前で探索します。たとえば、Bookというモデルクラスがある場合、これに対応するデータベースのテーブルは複数形の「books」になります。Railsの複数形化メカニズムは非常に強力で、不規則な語でも複数形/単数形に変換できます(person <-> peopleなど)。これにはActive Supportの pluralizeメソッドが使われています。 ここ気になっていたので、Active Sup…
改めてまとめてみた。 CSRF攻撃とは 悪意のあるサイトから、標的サイトへ、ログイン済みユーザーのブラウザを利用して勝手にリクエストを送る攻撃。被害者のブラウザに罠サイトを踏ませることで、ブラウザが自動的にCookieを付けてリクエストを送信し、アプリケーション上の重要な処理を悪用される恐れがある。 Railsにおける対策 ログイン済みユーザーの権限を悪用して、どこからでもPOST/PATCH/DELETE をされないようにするために、CSRFトークンを用いている。CSRFトークンは、セッション内に含まれるものと、リクエストに含まれるものがあるが、その二つが一致しているかどうかを検証することで…
概要 Rails + PostgreSQL の既存構成に pgvector を追加して、ベクトル検索を検証してみた 外部 API や Python を使わず、Ruby だけで Embedding 生成から検索まで完結する ベクトル検索とは? テキスト、画像、音声などのデータを Embedding(埋め込み) により数値ベクトルに変換し、その「意味」や「文脈」の近さを数値的に評価し、情報を検索する技術です。 単語の一致に依存せず、意味の類似性を考慮した検索が可能です。 Embedding(埋め込み)とは? テキストを「数値の配列」に変換 Embedding モデルにテキスト(画像・音声も可)を渡…
はじめに crowdworks.jp のジャンヌチームで主にバックエンドの技術的負債の解消に取り組んでいる @kotarou1192 です。 crowdworks.jp を支える Rails アプリケーションで YJIT を有効化しました。 本記事では、有効化の背景と、1週間の観察で得られたパフォーマンスの変化を報告します。
Railsアプリケーションからメールを送信する際に、エラーになった場合の再送(リトライ)方法をメモしておく。 前提 ActiveJob はDelayedJobを利用している (Rails.application.config.active_job.queue_adapter = :delayed_job) 最初の送信を含めて最大3回の送信を試みる 15分間隔でリトライをする TODO deliver_later は、 ActionMailer::MailDeliveryJob がデフォルトなので、それを継承した独自のJobクラスをつくる Jobクラスのなかで retry_on を実装する コー…
こんにちは。 ChatGPTが日本に浸透してから、開発工程や設計の「正解」が驚くほどのスピードで変化していくのを面白く眺めています。 今回は、現在もリリースに向けて奮闘しているプロジェクトについて、少しだけ振り返ってみようと思います。後悔といいますか、次に活かすための小さな反省録です。 プロジェクト概要 開発期間:6か月 メンバー:十数名(半分以上が新規参画のパートナーさん) 現在:テストフェーズへ移行中 長年お付き合いのあるクライアント様から、これまでにない規模の開発案件をご相談いただきました。 (後から聞いた話では、どうやら弊社がかなり前のめりにプッシュしていたようですが…) 普段は5名体…
リファクタリングに ActiveModel::EachValidator はいかがですか 外部APIによるチェック処理の重複問題 こんにちは、虎の穴ラボのawamoです。 先日、Railsアプリの機能改修をしていて気づいたことがありました。 「あれ、このテキスト分析のチェック処理、他のコントローラーでも見たような...」 調べてみると、同じ外部APIを呼び出すチェック処理が、複数のコントローラーにコピペで散らばっています。 ※ コードは例です。実際のプロダクトコードではありません。 # posts_controller.rb def create # ... 省略 ... analyzer =…
こんにちは、Eightの開発を担当している倉田です。Eightではこれまで、トランザクションのコミット後に処理を実行するためにafter_commit_everywhereからRails 7.2で新たに追加されたActiveRecord.after_all_transactions_commitへ移行しました。本記事では、移行を完了させた方法を紹介するとともに、移行を進める中で直面した、両者が混在する環境における技術的な問題点についても掘り下げます。