きゃまなかのブログ

新卒6年目の WEB エンジニアです。 直近3年間は大規模システムの運用を担当していました。 今期から開発チームに移動になって、Java を勉強しています。 好きな言語が Ruby なので、Ruby 系の記事が多いです。

Ruby on Rails

【Ruby on Rails】whenever を使って定期的にバッチ処理を行う

概要 Ruby on Rails で定期的にバッチ処理を実行する方法をまとめます。 定期的に処理を実行したい場合、クーロンを利用するのが定石かと思います。 クーロンを実行するには、crontab に設定を記載する必要があります。 Ruby on Rails の場合、lib ディレク…

【Ruby on Rails】ログ出力とログローテートの設定まとめ【Logger】

概要 Rails では ActiveSupport::Logger クラスを利用してログ出力ができます。 railsguides.jp 今回、ログの設定変更やログローテート方法、古いログの削除、オススメのプラグインなどをまとめました。 ログの設定 基本的には app/config/environments/*.rb…

【Ruby on Rails】API のレスポンスを生成するメソッドを紹介

概要 Ruby on Rails 5 からは API モードが導入され、API 専用のアプリケーションを簡単に作成できるようになりました。 railsguides.jp Ruby on Rails では CRUD と呼ばれる HTTP メソッドを利用して、RESTful なアプリケーション(API)を作成できるように…

【Ruby on Rails】重複しているレコードを取得する【MySQL】

概要 Ruby on Rails で DB から重複しているレコードを取得したい時がありました。 MySQL で重複しているレコードを取得する方法は分かるのですが、Ruby on Rails で同じ処理を書く場合、どうしたら良いのか分からなかったので調べて見ました。 MySQL で書く…

【Ruby on Rails】画像は public と app/assets/images のどちらに設置すべき?

概要 Rails ではアプリケーション内で使用される画像の設置場所に、現在 2つの場所が存在します 。 public ディレクトリ app/assets/images ディレクトリ どちらに設置しても画像の読み込みに困りませんが、設置場所によってどんな違いがあるのか、今回調べ…

【Ruby on Rails】deleted_at を使って論理削除をしよう

概要 Rails には DB のカラム名に『created_at』『updated_at』と言う、設定しておくだけで、作成日時と更新日時を自動記録してくれる、お決まりの便利な機能が用意されています。 このカラムのデータはアプリケーション内で利用するデータと言うよりも、DB …

【Ruby on Rails】require と permit の使い方がよく分からない

概要 Rails 4 からストロングパラメータと言う新機能が導入されました。 具体的には require と permit と言うメソッドのことです。 Scaffold で Controller を作成する際にデフォルトで適用されるのですが、使い方がよく分からず、いつも削除していました。…

【Ruby on Rails】ルーティング member と collection の違い

概要 Rails には index, show, new, edit, create, update, destroy の 7 つのデフォルトアクションが用意されています。 もし、これ以外のアクションを新しく追加したい場合、ルーティングに設定を追記する必要があります。 この場合、routes.rb をどう書く…

【Ruby on Rails】ルーティング scope と namespace の違い

概要 Rails で API を作成するときに、URL 設計を気にすると思います。 例えは、ユーザ情報を操作する users API のエンドポイントを下記のようなパスで作成したいとします。 http://$(DNS)/api/v1/users この場合、routes.rb をどう書くのか調べたところル…

【AWS】Ruby on Rails + Nginx + Unicorn + MySQL 環境構築

概要 AWS に初めて Rails のアプリを作成した時の手順をまとめました。 はじめに こちらの環境でアプリケーションを作成しました。 サーバOS Amazon Linux Web サーバ Nginx Rack サーバ Unicorn データベース MySQL フレームワーク Rails 5.0.X プログラミ…

【Ruby on Rails】緯度経度から 2 点間の距離を算出する

概要 今日では、企業が公開している API を利用して、簡単にアプリケーションを作成できるようになりました。 その中には、店舗情報を扱う API も数多く存在しています。 店舗情報を扱う API の多くは、店舗の位置情報を表すため、緯度経度を利用しています…

【Ruby on Rails】 gem を使わないで環境毎に定数管理をする

概要 Rails で定数管理するにはたくさんの gem が存在しています。 定数管理の gem で有名なものだとここら辺の名前が上がるかと思います。 github.com github.com config は環境毎に Yaml ファイルを用意して定数を管理するので、大規模アプリケーション向…