→Ruby on RailsRubyによるWebアプリケーションフレームワークRoR
Agile Web Development with Rails
10分で作るRailsアプリ for Windowshttp://masuidrive.jp/rails/
Ruby on Rails公式サイトの採用サイト紹介ページhttp://wiki.rubyonrails.org/rails/pages/RealWorldUsage
Sidekiqとは Sidekiqは、Ruby/Railsアプリケーションのための非同期ジョブ処理ライブラリ。アプリケーションのパフォーマンスとユーザー体験を向上させるために、重い処理をバックグラウンドで実行できる またJobとは、非同期で実行したい処理の単位のことで、Rubyのクラスとして定義する 主な用途 大量データのインポート処理 一斉メール送信 データ集計・分析処理 CSVデータの処理 Sidekiqのアーキテクチャ Sidekiqシステムは3つの主要コンポーネントから構成されている 1. Sidekiq Client 役割: JobをRedisに追加(エンキュー)する 動作場所: ア…
やりたいこと あるテーブルにおいて、特定のカラムの組み合わせ(e.g. user_id と common_id)がユニークになるように制約を設けていました。 またこのテーブルではacts_as_paranoid のgemを用いた論理削除が導入されています。 ここで、利用上は論理削除されたレコードはもう無くなったものとして、削除済みのレコードと同じ common_id を使って新しくレコードを作れるようにしたいです。 しかし、テーブルには論理削除されたレコードを考慮せずにユニーク制約を設定していたため、DBのユニーク制約に引っかかってエラーになってしまうという問題がありました。 あった課題 テー…
こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 こちらでご案内した通り、弊社で新しくリリースした「ClinPeer」の裏側をご紹介します。 tech.medpeer.co.jp 今回は小ネタとして「Railsプロジェクトの設定値管理」についてご紹介します。 目次 設定値管理とは Railsプロジェクトでの設定値管理の選択肢 Settingslogic SettingsCabinet その他諸々Gem Rails標準 config_for config_forの活用方法(定義・参照) config_for活用方法(裏側) なぜ config.x. を使わないのか なぜ…
こんにちは、ミツカリCTOの塚本こと、つかびー(@tsukaby0) です。 ミツカリはtoB向けのWebアプリケーションです。そのため、複数のユーザーが同時利用しますが、リクエスト数はtoCサービスやWeb広告、メディア、その他のtoB向けアプリケーションよりは非常に少ないです。 しかし、今回パフォーマンスをチューニング(レイテンシよりはスループット優先)する機会がありましたので、その取組について話します。 背景 ミツカリの利用者は主に企業に務める人事担当者や各部署のハイレイヤー、経営層などです。また、アプリケーション領域としてはHRです。そのため、常に利用されるようなサービスではなく、to…
こんにちは。サーバーサイドエンジニアの三村(@t_mimura39)です。 こちらでご案内した通り、弊社で新しくリリースした「ClinPeer」の裏側をご紹介します。 tech.medpeer.co.jp 今回はClinPeerのバックエンドについての簡単なシステム概要と選定技術の紹介編です。 2024-2025年にrails newをした新鮮なRailsプロジェクトの様子をお楽しみください。 目次 システム概要 rails stats Gemfile 技術選定 Ruby Ruby on Rails Puma ActionPack::CloudfrontViewerAddress Trilog…
Rails の composed_of の使い方をメモしておく。 巷にはcomposed_ofの説明がたくさんある。 しかし自分が調べてもサクッと分からず、自前で実装して確認したことを残しておく。 railsdoc.com 前提 実装例 利用方法 前提 composed_of にする対象のカラムは json 型 実装例 class_name のValueObject(モデル)にインナークラスを利用する場合には、class_name: "ExternalSetting::ServiceConfig" のように指定することで利用できる。 mapping にはマッピングをしたい[%w(当該モデルのメ…
こんにちは、サーバーサイドエンジニアの本間です。 弊社ではSQSをジョブキューとして使い、バックグラウンドジョブを処理させているサービスがそれなりにあります。 その際、 shoryuken を使うことで、自分たちで実装する工数をなるべく少なくしています。 過去にこのgemを使ったエントリも何個か投稿しています。 tech.unifa-e.com tech.unifa-e.com 安定して動作もしており、大変お世話になっているgemなのですが、一時期このgemのGithubリポジトリがアーカイブ状態になっており、今後のメンテナンスやセキュリティアップデートが難しい状況になっていました。 あら、s…
はじめに こんにちは、2023 年からジョブハウスで業務委託のバックエンドエンジニアをしている jxmtst です。 今日は、ジョブハウスで使用している Ruby on Rails の ViewComponent を用いて UI コンポーネントを実装する際に利用しているライブラリを紹介します。 ViewComponent(UI コンポーネント)× Lookbook(プレビュー)× rspec-snapshot(スナップショットテスト) という、フロントエンドエンジニアには馴染みのあるようなエコシステムを、Ruby on Rails 上で実現しています。 ViewComponent とは Vie…
プロジェクトのバージョンアップ作業に伴い、bundleについて理解を深めるために公式ドキュメントを確認してみた。 bundler.io Bundlerとは? Bundlerは、必要なgemとバージョンを正確に追跡してインストールすることで、Rubyプロジェクトに一貫した環境を提供します。 Bundlerは依存性地獄からの出口であり、必要なgemが開発、ステージング、本番環境に存在することを保証します。 プロジェクトでの作業の開始は、bundle installと同じくらい簡単です。 Bundlerを使用する事で下記のようなメリットが生まれる。 プロジェクトを始める際や新しいメンバーが参加する際…
エムスリーキャリア薬剤師採用支援チームの吉田と申します。 今回は、Hotiwreを用いたフロントエンド実装について、弊社の採用管理システムの実例を交えてご紹介いたします。 何をやったか? 弊社の採用管理システムには薬剤師の検索機能があり、ユーザー毎に検索条件を保存することが可能です。 この画面でTurbo Streamsを用いてモーダルとフラッシュメッセージの制御を行いました。 今回実装した画面遷移パターンをざっくりとまとめると以下のようになります。 リクエストの種類やサーバーサイドでの処理結果によって、最終的に表示する内容が分岐しています。 設計前は「Turbo Framesで実装できるやろ…