【Rails】Rubyでcronジョブを記述できるGem「whenever」の導入・使用方法

はじめに 何らかの処理を定期的に実行したいという場合、UNIX/Linuxに搭載されているcron(クーロン)という機能を使うことができます。 cronの設定例 $ crontab -l 0 1 * * * bundle exec rake articles:check_status この例は「毎日1:00 ...

【Ruby】Bundlerを使ってRubyGemsを作成/公開する方法

はじめに Bundlerを使ってRubyGemsを作成および公開する方法について説明します。Bundlerを使わずにRubyGemsを作成/公開する方法については以下の記事を参照してください。 <iframe class="hatenablogcard" style="width:100%;height:155 ...

【Ruby】RubyGemsを作成/公開する方法

はじめに RubyGemsを作成および公開する方法について説明します。Bundlerを使ってRubyGemsを作成する方法については以下の記事を参照してください。 <iframe class="hatenablogcard" style="width:100%;height:155px;" title="【Ru ...

【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】ページネーション「kaminari」で用意されているテーマ一覧とスタイルのカスタマイズ

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

【Rails】Rails + Contentfulで簡単にブログを実装

はじめに Railsで記事の作成/編集/削除を行うブログを実装することは簡単です。以下のようにscaffoldコマンドを実行するだけで、ブログに必要なコントローラー、モデル、マイグレーション、ビュー、ルーティングが作成されます。 $ rails generate scaffold Article title: ...

【Rails】「mailcatcher」を使ってテストメールを送信/受信する

はじめに Railsアプリでコンタクトフォームなどを自作している場合、開発段階でメールが送信されることを確認する必要があります。開発段階のテストのため、実際のメールサーバーを使うことや、実際のメールクライアントにテストメールが残ることを避けたいという場合があります。 本記事では、mailcatcherというGe ...

【Rails】「NoMethodError (undefined method `cookie_value' for nil:NilClass):」の原因と対処法

はじめに 当ポートフォリオサイトのブログにてエラーが出ていて見られない状況が続いていました。気づいたのはつい先日のことで、知り合いの方との通話中にたまたま発覚しました。 結論から言うとimpressionistというGemが原因でした。 2020年9月のリニューアル時からimpressionistを導入している ...

【Rails】コードをシンタックスハイライトする『rouge』のカラーテーマ一覧と指定方法

はじめに Markdownで書いた記事のコード部分をシンタックスハイライトする『rouge』というGemがあります。当ブログでも使っており、導入や使い方については以前記事にしました。 <iframe class="hatenablogcard" style="width:100%;height:15 ...

【Rails】bundle updateでGemがアップデートされない原因

はじめに 前回、GitHubからセキュリティアラートが届いたらすぐにGemのアップデートを行おうという記事を書きました。 <div class="iframely-embed"><div class="iframely-responsive" style="height: 140px; padding-bott ...