【Rails】Railsアプリのデバッグ《Better Errors篇》

はじめに Railsアプリの開発中になんらかのエラーが発生すると、デフォルトでは以下のような画面が表示されます(画像をクリックすると拡大します)。 <a class="gallery" data-group="gallery" href="https://i.imgur.com/V9lx7Iy.png"><im ...

【Rails】Railsアプリのデバッグ《byebug篇》

はじめに Ruby on Railsに限りませんが、アプリの開発中にはエラーは付き物です。なにかしらのエラーが発生したときに、エラーの原因を特定しエラー箇所を修正することをデバッグと言います。Railsではデバッグの手助けとなる機能があらかじめ備わっています。 本記事では、「byebug」を使ったデバッグについ ...

【Rails】レンダリング(renderメソッド)でアンカー指定を行う

はじめに 通常、Railsでアンカー付きのリクエストを発生させるにはredirect_toを使います。 rb redirect_to root_path(anchor: 'target') では、renderでビューを表示させるときにアンカーを指定したいときはどうすればいいのでしょうか。renderはredi ...

【Rails】Bundler 2.2.x以降は開発者が適切なプラットフォームを追加する必要がある

事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash 実行コマンド Running $HOME/.rbenv/bin/rbenv exec bundle check エラー内容 Your bundle only supports platfo ...

【Rails】Webpackerと互換性のないNode.jsがインストールされているとエラー

事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash 実行コマンド Running $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile エラー内容 error @rai ...

【Rails】Capistranoの設定でシンボリックリンクを張るファイルをなぜかディレクトリとして作成しようとしてエラー

事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash 実行コマンド Running /usr/bin/env mkdir -p /var/www/app/shared/config/master.key /var/www/app/shared ...

【Rails】RubyGemsのバージョンが3.1.3未満だとBundler実行時にエラー:bundler: failed to load command: <gem>

事象 昔作ったRailsアプリを久しぶりに修正しデプロイしようとしたところ、以下のエラーが出力されました。 ```bash 実行コマンド Running $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile エラー内容 bundler: f ...

【Rails】Webサーバー「Unicorn」の基本情報と実装方法

はじめに Railsアプリを本番環境で稼働させるには、クライアントからのリクエストを捌くWebサーバーを導入する必要があります。WebサーバーはクライアントからのリクエストをRailsアプリに伝達し、Railsアプリで処理されたレスポンスをクライアントに返すという役割を担います。 本記事では、Webサーバー「U ...

【Rails】デプロイツール「Capistrano」の基本情報と実装方法

はじめに アプリを本番環境にアップロードして誰でもアクセスできる状態にすることをデプロイと言います。デプロイで行うべきことは多岐にわたります。Railsアプリの場合で言えば、本番環境にアップロードすることはもちろんですが、Gemのインストールやマイグレーション、SprocketsやWebpackerのコンパイル ...

【Rails】Webpackerの基本情報と実装方法

はじめに Rails 6からWebpackerが正式採用されました。Rails 5ではオプションで追加することができたWebpackerですが、Rails 6からは普通にアプリを作成するだけでWebpackerがインストールされ、必要な設定もすべて行われるのですぐにWebpackerを使い始められるようになりま ...