【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】アプリケーションサーバー「Unicorn」の基本情報と実装方法

はじめに Railsアプリケーションを本番環境で安定して稼働させるには、Webサーバーの導入が不可欠です。Webサーバーは、クライアントからのHTTPリクエストをRailsアプリに伝達し、アプリで処理されたレスポンスをクライアントに返す役割を担います。 本記事では、Railsアプリ用のアプリケーションサーバー「 ...

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

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

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

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

【Rails】アセットパイプライン(Sprockets)の基本情報と実装方法

はじめに Ruby on Railsにはアセットパイプラインという機能があります。アセットパイプラインは画像、CSS、JavaScriptといったアセットファイルを連結/圧縮することでRailsアプリを高速化します。また、より高級な言語で書かれたCSSやJavaScriptをコンパイルする機能も備えています。 ...

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

はじめに Ruby on Railsにはページの遷移を高速化するTurbolinksという機能があります。Turbolinksは優れたJavaScriptライブラリですが、Rails 5からは標準で有効化されているため、Turbolinksを使っているということすら知らずにRailsアプリを作成している人も多い ...

【Rails】UIkit - HTML editorを使って簡単にマークダウンエディターを実装

はじめに Ruby on RailsではAction Textという機能を使うことで簡単にリッチテキストエディターを実装することができます。 <iframe class="hatenablogcard" style="width:100%; height:155px; max-width:680px;" tit ...

【CSS】CSSだけでMarkdownのコードにファイル名をつける

はじめに Markdownのコードに、そのコードがどのファイルのものなのかを示すためにファイル名が書いてあるとわかりやすいです。以下はQiitaの記事でコードを書いたときの一例です。 <img data-src="https://i.imgur.com/xO6MLjc.png" class="lazyload ...

【Rails】ページネーション「kaminari」で用意されているテーマ一覧とスタイルのカスタマイズ

はじめに Railsアプリにページネーションを簡単に実装できるkaminariというGemには、BootstrapなどのCSSフレームワークのテーマ(テンプレートファイル)が用意されています。わざわざCSSフレームワークのクラスを手動で付与しなくても、専用コマンドを実行するだけで各テーマのテンプレートファイルを ...