きゃまなかのブログ

新卒5年目のWEBエンジニアです。仕事は運用メインで、空いた時間に開発しています。何故かブログを始めた次の日に会社の先輩に見つかりました。変な記事書くとダメ出し食らうので、いい記事書けるように頑張ります。

Ruby on Rails

【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 ファイルを用意して定数を管理するので、大規模アプリケーション向…