7839

雑草魂エンジニアブログ

Ruby on Rails

【Ruby】cairoで画像作成を実装する(画像にスタンプと文字を追加する)

Railsアプリケーションにおいて、バックエンド側で以下のような画像作成をしたいと思い、サンプルアプリケーションを作ってみたので備忘録として残しておく。 ラジオ体操のスタンプみたいw Ruby : v3.1.2 Ruby on Rails : v7.0.3.1 Ruby/Railsでどのライブラ…

【Docker】node_module の volume 設定に関して(Rails / ruby,node環境)

RailsのDocker開発環境を構築している際に、node_module の volume 設定が上手くいかず、改めて Docker について調べた内容を備忘録として残しておく。 結論:Dockerfile, docker-compose.ymlの設定 コンテナ内のnode_modulesが消える ホスト側のnode_module…

【Rails】Faraday2.0を使う

Railsアプリケーションで外部APIを使う場合に、導入していた Faraday。v1からv2にアップデートしており、保守性を考慮して少し仕様が変わっていた。Faradayの使い方を備忘録として残しておく。 Ruby:v3.0.1 Ruby on Rails : v6.1.3.2 Faraday : v2.3.0 Fara…

【Rails】ControllerからRakeタスクを実行する

バックエンド側で定期実行しているRakeタスクをフロントエンド側から任意のタイミングで実行したくなった。そのために、RailsアプリケーションのControllerからRakeタスクを実行する方法を検討したので備忘録として残しておく。 Ruby:v3.0.1 Ruby on Rails …

【Rails】camelCase⇆snake_caseの変換

今回は久しぶりのRailsアプリケーション開発。 社内の一部業務の自動化のために簡単なアプリケーションを前任者から引継ぎ、一部改良を行った。構成はバックエンドがRuby on Railsで、フロントエンドがNuxt.jsの構成だ。 インターフェースとしてAPIを実装す…

【Rails】devise_token_authでToken認証を実装する

結構前にやったことであるが、Rails6でAPIを作成した際に、認証機能を簡単に実装できるdevise_token_authを使ってToken認証機能を実装したので備忘録として残しておく。 実行環境 Ruby : 3.0.1 Ruby on Rails : 6.1.5 devise_token_auth : 1.2.0 rack-cors :…

【Rails】ActiveRecord::Base#reload(SQLキャッシュ)

Railsアプリケーション開発時に、少しハマったので、備忘録として残しておく。今回を通して、RailsのSQLキャッシュという機能があることを知った。また、その場合に、どのようにして再取得すべきかを学ぶことができた。 実行環境 Ruby : 3.0.1 Ruby on Rails…

【Ruby】begin ~ rescue ~ end 例外処理

Railsアプリケーションで、複雑な処理を実装しようと思うと、例外処理の実装が不可欠となる。Rubyで例外処理をどのように実装するか、(毎回確認している気がするのでw)備忘録として残しておく。 例外処理 raise rescue (おまけ)一定回数retryさせる まとめ…

【Rails】Sidekiq 〜ジョブがスタックしたので、複数プロセスで対応

自動復旧できるシステムが構築したくて、Railsで簡易的なアプリケーションを開発した。その際に、バックグラウンドジョブを実行するために、Sidekiqを使った。ただ、バックグラウンドジョブがスタックすることがあったので、調べたことを備忘録として残して…

【Rails】DB を使わずに、jsonファイルで簡易ユーザー管理機能を実装する

ある Rails アプリケーションにおいて、下図のように、1つの DB を複数のアプリケーションが参照する場合がある。(ただし、複数のアプリケーションから、自由に DB の書き込みができるのではなく、1つのみに Read/Write 権限を持たせて、その他は Read 権…

【Rails】SideKiqを用いて非同期処理(バックグラウンドジョブ)を実行する

今回、Rails のプロジェクトで、バックグラウンド処理を実装したくなり、SideKiq を用いて実装を行ったので、備忘録として残しておく。 ジョブ管理 Sidekiq とは Redis をインストールする Sidekiq を実装する (おまけ)AWS EC2へのデプロイ Redis のインス…

【Linux】Supervisor でプロセス制御(Rails + Puma / Capistrano)

EC2(AmazonLinux2)に構築した Railsアプリケーションのプロセス管理、具体的にはデーモンプロセスとして動かすために、今回 Supervisor を使ったので、備忘録として残しておく。 Supervisor v4.2.1 Supervisor とは Supervisor のコマンド supervisord sup…

【Rails】Capistrano で Rails アプリケーションを自動デプロイ(サーバー設定/デプロイ編)

先日の【Rails】Capistrano で Rails アプリケーションを自動デプロイ(設定編)に続き、今回は実際にデプロイするにあたり、サーバー側で事前に設定した内容に関して、備忘録として残しておく。 Capistrano ver.3.14.1 Rails ver.5.2.4 AmazonLinux2 サーバ…

【Rails】Capistrano で Rails アプリケーションを自動デプロイ(設定編)

Rails アプリケーションを本番、ステージング環境にデプロイする際に、同じ作業を何回もやるのは正直面倒である。今回、Capistrano というデプロイ自動化ツールを使ったので、備忘録を残しておく。 Capistrano ver.3.14.1 Rails ver.5.2.4 サーバーの環境構…

【Puma】Rails 5.2 + Puma + Nginx のデプロイ設定

先日、【EC2】Rails5 環境構築(Ruby + MySQL5.7 + Node.js + Nginx) について書いた。そして、今回は、アプリケーションサーバーである Puma について色々と調べて設定したので、備忘録を残しておく。(以前、Rails を使っていた時は、Unicorn が主流だっ…

【EC2】Rails5 環境構築(Ruby + MySQL5.7 + Node.js + Nginx)

最近、全く更新できていなかった。。。 今年やったことは今年のうちに。自分の棚卸しも兼ねて、一気にアウトプットしていきたいと思う。 今回は、AWSのEC2に、Railsアプリケーションをデプロイするにあたり、毎回調べていたので、備忘録として環境構築方法を…