Rails
Rails7でbin/devを実行するとActionView::Template::Error (Multiple files with the same output path cannot be linked ("application.css")(Sprockets::DoubleLinkError)のエラーが発生 実行環境 Ruby:3.3.0 Rails:7.1.3.2 Node.js:20.12.2 yarn:1.22…
HomebrewでインストールしたPostgreSQL 14をPostgreSQL 16にアップグレードした時のメモです。 開発環境 Homebrew:4.2.6 PostgreSQL:16.1 rbenv:1.2.0 Ruby:3.3.0 Rails:7.1.2 pg:1.5.4 MacBook Pro (13-inch, 2020) macOS Sonoma 14.2.1 PostgreSQL 1…
この記事では、Fly.ioのcronを設定してRailsアプリのrakeタスクを定期実行する方法を解説します。 1. 開発環境 2. 手順 2-1. サンプルアプリを作成 2-2. rakeタスクを作成 2-3. Fly.ioにデプロイ 2-4. cronの設定を追加 2-5. eventsテーブルにデータを追加 2…
1. Ruby 1-1. リリース情報 1-2. バージョニングルール 2. Rails 2-1. リリース情報 2-2. バージョニングルール 1. Ruby 1-1. リリース情報 Ruby公式ページ - ダウンロード Ruby公式ページ - Ruby のリリース一覧 1-2. バージョニングルール Ruby 2.1.0 以降…
この記事では、DeviseとOmniAuthを使ってGitHubのOAuth認証を導入する手順を解説します。 Deviseのユーザ認証機能を持つRailsアプリに「GitHubでログイン」する機能を追加します。 OAuthの概要については、以下の記事をご参照ください。 qiita.com qiita.com…
この記事では、ヘッドレスブラウザ(Chrome)でRailsアプリのJavaScriptをデバッグする方法を紹介します。 この方法を用いると、ヘッドレスブラウザでも通常のChrome DevToolsのデバッグと同じようにページのライブビューを表示しながらデバッグすることが可能…
1. 検証環境 MacBook Pro (13-inch, 2020) macOS Ventura 13.4.1 Rails 6.1.4.7 Ruby 3.1.0 rbenv 1.2.0 capybara 3.39.1 webdrivers 5.2.0 selenium-webdriver 4.9.1 Google Chrome 115.0.5790.114 2. エラー内容 Railsでテストを実行しようとしたら以下の…
1. はじめに rails db:migrate:statusを実行すると、時々NO FILEと表示されることがある。 up 20230331081736 ********** NO FILE ********** 主に以下のパターンの時にNO FILEのマイグレーションが表示される migrate実行後に誤ってマイグレーションファイ…
1. はじめに Railsアプリの開発において、スキーマに変更がある状態でgitのブランチを切り替える際には注意が必要です。 ブランチを切り替えると、ソースコードは切り替わりますが、データベースのスキーマは変更されません。 これはスキーマがブランチを跨…
この記事では、Prettier for Rubyを使って、Railsのコードを自動フォーマットする方法を紹介します。 VSCodeでファイルを保存する際に自動フォーマットできるようになります。 1. 検証環境 2. 設定手順 2-1. @prettier/plugin-rubyのインストール 2-2. gemの…
この記事ではletter_opener_webを使ってRailsの開発環境で送信したメールをブラウザ上で確認する方法を紹介します。 1. 実行環境 macOS:12.5.1 Ruby:3.1.2 Rails:6.1.7 letter_opener_web:2.0.0 2. letter_opener_webの設定方法 gemのインストール confi…
Railsアプリはデフォルトでbin配下に各種のbinstubを作成する。 bin/yarnはyarnのbinstub。 bin/yarnがどうやってyarnを実行しているのか気になったので、bin/yarnのコードを読んでみた。 1. 実行環境 Rails:6.1.7 Ruby:3.1.0 2. bin/yarn 自分の環境では…
結論 safe_joinを使えば、タグをエスケープしてXSS攻撃を防ぎつつ、連続した改行も反映される。 <% text = "1行目\n\n\n2行目<script>alert()</script>" %> <%= safe_join(text.split("\n"), tag.br) %> # 1行目 # # # 2行目<script>alert()</script> 結論に至るまでの道のり その1 <% text = "…
この記事では、RailsアプリでBundlerを使ってインストールしたgemを削除する方法を紹介します。 手順 $ bundle exec gem uninstall <gem名> ↓ Gemfileから該当のgemの行を削除 ↓ $ bundle install 上記によりGemfile.lockからも削除されます。 【参考】 gem uninsta</gem名>…
GemfileはBundlerでgemの依存関係を管理するために必要な設定ファイルです。 Gemfileにはgem名とバージョンをgem 'rails', '~> 6.1.5'のようなフォーマットで記述します。 ~> 6.1.5の正確な意味わかりますか? ~>の呼び方知ってますか?(トゥウィドルワッカ…
この記事では、Railsのポリモーフィック関連付けを使ってコメント投稿機能を実装する際のポイントを紹介します。 1. バージョン情報 2. 前提条件 3. 実装時のポイント 3-1. ポリモーフィック関連付け 3-2. コメント作成 3-3. コメント表示 3-4. コメント作成…
この記事では、RailsでTwitterやInstagramのようなユーザーフォロー機能を実装する際のポイントを紹介します。 1. バージョン情報 2. 実装時のポイント 2-1. モデルの関連 Friendshipモデルの作成 User/Friendshipの関連付け 2-2. フォロー数・フォロワー数…
この記事では、Rails 5.2からの標準機能であるActiveStorageを使って画像アップロード機能を実装するポイントを紹介します。 1. バージョン情報 2. 実装時のポイント 2-1. Active Storageのセットアップ 2-2. 画像アップロードと表示 2-3. 画像のリサイズ 2-…
この記事では、devise gemを使ってRailsアプリケーションにユーザー認証機能を実装する方法を紹介します。 1. 実行環境 2. 手順 2-1. サンプルアプリの作成 2-2. deviseのセットアップ 2-3. ルートルーティングの設定 2-4. フラッシュメッセージの表示 2-5. …
この記事では、Ruby 3.1で標準ライブラリとなったdebug.gemを使って、VSCode上でRailsアプリのデバッグを行う方法を紹介します。 1. 設定方法 1-1. debug.gemのインストール 1-2. vscode-rdbgのインストール 1-3. launch.jsonファイルの作成 2. デバッグ方法…
この記事では、kaminari gemを使ってページング処理(ページネーション)を実装する方法を紹介します。 1. 実行環境 2. 手順 2-1. kaminari gemのインストール 2-2. ページネーションを実装 2-3. 日本語化 1. 実行環境 macOS:12.5.1 Ruby:3.1.2 Rails:6.1.7…
この記事では、Railsに同梱されているi18n gemを使ってアプリケーションを多言語化する方法を紹介します。 1. 実行環境 2. 手順 2-1. i18nモジュールの設定 2-2. ロケールファイルのダウンロード 2-3. Active Recordモデルで翻訳を行なう 2-4. その他の翻訳 …
1. はじめに 2. 開発環境 3. 手順 3-1. MySQLのインストールとセキュリティ設定 3-2. MySQLのユーザー作成 3-3. Railsアプリケーションの作成 3-4. dotenv-railsの導入 3-5. データベースの作成 1. はじめに Railsではデフォルトのデータベースにsqlite3を使…
1. 開発環境 2. エラー時の状況 3. エラーログ 4. エラーの原因と思しき箇所 5. 解決法 5-1. Homebrewでopensslをインストール 5-2. bundle configコマンドでopensslのパスを指定 5-3. bundle installしてmysql2をインストール 1. 開発環境 macOS Monterey:…
RailsにMySQLを導入する際に、パスワードをdatabase.ymlに直接書くのはいかがなものかと思い、他の方法を調べた結果、dotenv-railsを使って認証情報を環境変数で管理できることがわかりました。 今回は作成済みのRailsアプリケーションにdotenv-railsを導入…