あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

Rails

【Rails 7】Multiple files with the same output path cannot be linked ("application.css")エラーを解決する

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…

【Rails】HomebrewのPostgreSQLをアップグレードする

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 + Rails】cronでrakeタスクを定期実行する

この記事では、Fly.ioのcronを設定してRailsアプリのrakeタスクを定期実行する方法を解説します。 1. 開発環境 2. 手順 2-1. サンプルアプリを作成 2-2. rakeタスクを作成 2-3. Fly.ioにデプロイ 2-4. cronの設定を追加 2-5. eventsテーブルにデータを追加 2…

RubyとRailsの最新バージョンを公式ページから確認する

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 以降…

【Rails】Devise + OmniAuthでGitHubのOAuth認証を導入する

この記事では、DeviseとOmniAuthを使ってGitHubのOAuth認証を導入する手順を解説します。 Deviseのユーザ認証機能を持つRailsアプリに「GitHubでログイン」する機能を追加します。 OAuthの概要については、以下の記事をご参照ください。 qiita.com qiita.com…

【Rails】ヘッドレスブラウザ(Chrome)でJavaScriptをデバッグする方法

この記事では、ヘッドレスブラウザ(Chrome)でRailsアプリのJavaScriptをデバッグする方法を紹介します。 この方法を用いると、ヘッドレスブラウザでも通常のChrome DevToolsのデバッグと同じようにページのライブビューを表示しながらデバッグすることが可能…

Railsのテスト実行時にWebdrivers::VersionError【ChromeDriver】

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でテストを実行しようとしたら以下の…

【Rails】マイグレーションでNO FILEが表示された時の対処法

1. はじめに rails db:migrate:statusを実行すると、時々NO FILEと表示されることがある。 up 20230331081736 ********** NO FILE ********** 主に以下のパターンの時にNO FILEのマイグレーションが表示される migrate実行後に誤ってマイグレーションファイ…

【Rails】マイグレーション実行後のブランチ切り替えにおける注意点

1. はじめに Railsアプリの開発において、スキーマに変更がある状態でgitのブランチを切り替える際には注意が必要です。 ブランチを切り替えると、ソースコードは切り替わりますが、データベースのスキーマは変更されません。 これはスキーマがブランチを跨…

【VSCode+Prettier】Railsのコードを自動フォーマットする

この記事では、Prettier for Rubyを使って、Railsのコードを自動フォーマットする方法を紹介します。 VSCodeでファイルを保存する際に自動フォーマットできるようになります。 1. 検証環境 2. 設定手順 2-1. @prettier/plugin-rubyのインストール 2-2. gemの…

【Rails】letter_opener_webで送信メールをブラウザ上で確認する

この記事では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/yarnを解読する

Railsアプリはデフォルトでbin配下に各種のbinstubを作成する。 bin/yarnはyarnのbinstub。 bin/yarnがどうやってyarnを実行しているのか気になったので、bin/yarnのコードを読んでみた。 1. 実行環境 Rails:6.1.7 Ruby:3.1.0 2. bin/yarn 自分の環境では…

【Rails】タグのエスケープ & 連続した改行の反映

結論 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】gemのアンインストール方法

この記事では、RailsアプリでBundlerを使ってインストールしたgemを削除する方法を紹介します。 手順 $ bundle exec gem uninstall <gem名> ↓ Gemfileから該当のgemの行を削除 ↓ $ bundle install 上記によりGemfile.lockからも削除されます。 【参考】 gem uninsta</gem名>…

【Bundler】Gemfileのバージョン指定の書き方

GemfileはBundlerでgemの依存関係を管理するために必要な設定ファイルです。 Gemfileにはgem名とバージョンをgem 'rails', '~> 6.1.5'のようなフォーマットで記述します。 ~> 6.1.5の正確な意味わかりますか? ~>の呼び方知ってますか?(トゥウィドルワッカ…

【Rails】ポリモーフィック関連付けを使ってコメント投稿機能を実装する

この記事では、Railsのポリモーフィック関連付けを使ってコメント投稿機能を実装する際のポイントを紹介します。 1. バージョン情報 2. 前提条件 3. 実装時のポイント 3-1. ポリモーフィック関連付け 3-2. コメント作成 3-3. コメント表示 3-4. コメント作成…

【Rails】ユーザーフォロー機能を実装する

この記事では、RailsでTwitterやInstagramのようなユーザーフォロー機能を実装する際のポイントを紹介します。 1. バージョン情報 2. 実装時のポイント 2-1. モデルの関連 Friendshipモデルの作成 User/Friendshipの関連付け 2-2. フォロー数・フォロワー数…

【Rails】ActiveStorageで画像アップロード機能を実装する

この記事では、Rails 5.2からの標準機能であるActiveStorageを使って画像アップロード機能を実装するポイントを紹介します。 1. バージョン情報 2. 実装時のポイント 2-1. Active Storageのセットアップ 2-2. 画像アップロードと表示 2-3. 画像のリサイズ 2-…

【Rails】deviseでユーザー認証機能を実装する

この記事では、devise gemを使ってRailsアプリケーションにユーザー認証機能を実装する方法を紹介します。 1. 実行環境 2. 手順 2-1. サンプルアプリの作成 2-2. deviseのセットアップ 2-3. ルートルーティングの設定 2-4. フラッシュメッセージの表示 2-5. …

VSCodeでRailsをデバッグする【Rails + vscode-rdbg(debug.gem)】

この記事では、Ruby 3.1で標準ライブラリとなったdebug.gemを使って、VSCode上でRailsアプリのデバッグを行う方法を紹介します。 1. 設定方法 1-1. debug.gemのインストール 1-2. vscode-rdbgのインストール 1-3. launch.jsonファイルの作成 2. デバッグ方法…

【Rails】kaminariでページング処理を実装する

この記事では、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で日本語化する方法

この記事では、Railsに同梱されているi18n gemを使ってアプリケーションを多言語化する方法を紹介します。 1. 実行環境 2. 手順 2-1. i18nモジュールの設定 2-2. ロケールファイルのダウンロード 2-3. Active Recordモデルで翻訳を行なう 2-4. その他の翻訳 …

【Rails/MySQL】RailsでMySQLを使う方法

1. はじめに 2. 開発環境 3. 手順 3-1. MySQLのインストールとセキュリティ設定 3-2. MySQLのユーザー作成 3-3. Railsアプリケーションの作成 3-4. dotenv-railsの導入 3-5. データベースの作成 1. はじめに Railsではデフォルトのデータベースにsqlite3を使…

【Rails/MySQL】bundle installでgem mysql2がインストールできない時の解決法

1. 開発環境 2. エラー時の状況 3. エラーログ 4. エラーの原因と思しき箇所 5. 解決法 5-1. Homebrewでopensslをインストール 5-2. bundle configコマンドでopensslのパスを指定 5-3. bundle installしてmysql2をインストール 1. 開発環境 macOS Monterey:…

【Rails/MySQL】dotenv-railsを使ってデータベースの認証情報を環境変数で管理する

RailsにMySQLを導入する際に、パスワードをdatabase.ymlに直接書くのはいかがなものかと思い、他の方法を調べた結果、dotenv-railsを使って認証情報を環境変数で管理できることがわかりました。 今回は作成済みのRailsアプリケーションにdotenv-railsを導入…