Ruby on Rails

【Ruby on Rails】オプション付きのコマンドライン引数を扱う

概要 自作コマンド --help (-h) オプション --version (-v) オプション --message (-m) オプション --uppercase (-u) オプション 例外処理 詰まったポイント オプション値が必要な場合は明示的に指定する optparse のバグ? コマンド化する まとめ 概要 Ruby…

【Ruby on Rails】POST リクエストにリトライ処理を入れる

概要 はじめに 対応方針 サンプルコード まとめ 概要 HTTP リクエストは必ずしも成功するものではありません。 リクエストを受け取るサーバ側の問題だったり、ネットワークの問題だったりで稀に失敗する事があります。 そう言った場合にリトライ処理(再送処…

【Ruby on Rails】rubocop と pre-commit を利用して git commit 時にコーディングチェックを行う

概要 rubocop とは 使い方 注意点 pre-commit とは 使い方 設定を解除したい場合 まとめ 概要 Rails アプリケーションに rubocop と pre-commit という gem をインストールして、git commit 時にコーディングチェックを行うようにします。 もし、コーディン…

【Ruby on Rails】オートコンプリート機能付き検索フォームを実装する

概要 gem の紹介 対応手順 1. Gemfile の修正 2. application.js の修正 3. Controller の修正 full オプション 4. ルーティングの設定 5. View の修正 6. form の実装 7. 検索機能の実装 まとめ 概要 Ruby on Rails でオートコンプリート機能付きの検索フォ…

【Ruby on Rails】Mysql2::Error: Data too long for column 'xxxxx' at row 1:

概要 エラー文言 原因 解決策 何のデータ型にすれば良いのか? 日本語文字って何バイトか? 例外処理を入れる まとめ 概要 自分が担当しているシステムでユーザーからデータの保存ができないとお問い合わせを受けたことがあります。 システムが高負荷になっ…

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

概要 導入方法 gem インストール 設定ファイル生成 定期的に実行したい処理を記載 設定の反映・削除など 設定の確認 設定の反映 設定の削除 まとめ 概要 Ruby on Rails で定期的にバッチ処理を実行する方法をまとめます。 定期的に処理を実行したい場合、ク…

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

概要 ログの設定 ログレベルの変更 ログファイルの変更 ログフォーマットの変更 ログ出力 ログローテート 日付でログローテート ファイルサイズでログローテート その他 まとめ 概要 Rails では ActiveSupport::Logger クラスを利用してログ出力ができます。…

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

概要 紹介する前に コピペして使っているメソッド 使い方 動作確認 おまけ ページが存在しません 最後に 概要 Ruby on Rails 5 からは API モードが導入され、API 専用のアプリケーションを簡単に作成できるようになりました。 railsguides.jp Ruby on Rails…

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

概要 はじめに 重複しているレコードを取得 MySQL の場合 Ruby on Rails の場合 重複しているレコードを全て取得 MySQL の場合 Ruby on Rails の場合 おまけ 条件を満たさない重複レコードを削除する MySQL の場合 Ruby on Rails の場合 まとめ 概要 Ruby on…

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

概要 画像を読み込む際のパスが違う アセットパイプラインについて CSS で使えるプロパティが違う public ディレクトリに置くケース まとめ 概要 Rails ではアプリケーション内で使用される画像の設置場所に、現在 2つの場所が存在します 。 public ディレク…

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

概要 はじめに 導入方法 gem の紹介 ApplicationRecord に設定追加 カラムの追加 動作確認 最後に まとめ 概要 Rails には DB のカラム名に『created_at』『updated_at』と言う、設定しておくだけで、作成日時と更新日時を自動記録してくれる、お決まりの便…

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

概要 はじめに params の中身を確認 params.require の中身を確認 params.require.permit の中身を確認 おまけ 配列のパラメータを受け取りたい場合 まとめ 概要 Rails 4 からストロングパラメータと言う新機能が導入されました。 具体的には require と per…

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

概要 member の使い方 collection の使い方 まとめ 概要 Rails には index, show, new, edit, create, update, destroy の 7 つのデフォルトアクションが用意されています。 もし、これ以外のアクションを新しく追加したい場合、ルーティングに設定を追記す…

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

概要 namespace の使い方 scope の使い方 まとめ 概要 Rails で API を作成するときに、URL 設計を気にすると思います。 例えは、ユーザ情報を操作する users API のエンドポイントを下記のようなパスで作成したいとします。 http://$(DNS)/api/v1/users こ…

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

概要 環境 タイムゾーンの設定 ロケールの設定 Yum インストール 標準ライブラリ Git インストール MySQL インストール Nginx インストール Ruby インストール Bundler インストール Rails インストール Rails アプリ作成 Gemfile を修正 Nginx の設定 デー…

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

概要 計算式 プログラムを作成 算出結果の確認 まとめ 最後に 概要 最近では企業が多くの API を公開しており、それらを利用して簡単にアプリケーションを作成できるようになりました。 その中には、店舗情報を扱う API も数多く存在します。 店舗情報を扱う…

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

概要 はじめに Yaml を利用した定数管理 config/constants.yml config/initializers/00_load_config.rb 動作確認 まとめ 概要 Ruby on Rails には定数管理用の gem がたくさん存在します。 有名な gem だと以下の名前が上がるかと思います。 github.com gith…