【Rails】マイグレーションの書き方《Seed篇》

はじめに Railsには、マイグレーションで作成したデータベーススキーマにテストデータを登録する機能が用意されています。それがSeedと呼ばれるものです。Seedはテストデータを登録する処理をRubyで記述し、コマンドを実行することでデータベースにテストデータを登録することができます。 Seedを使うと、大量の ...

【Rails】マイグレーションの書き方《実行篇》

はじめに ActiveRecordの機能のひとつ、マイグレーションは便利な機能ですが、使い方を間違えるとせっかく作ったデータベースを破壊してしまいかねません。データベースの操作を間違えたときに有用なロールバックも、きちんと手順を守って行わないとマイグレーションの整合性が崩れてしまう可能性があります。 本記事では ...

【Rails】マイグレーションの書き方《作成・編集篇》

はじめに データベースベンダーに依存することなくテーブルの作成やカラムの追加/削除などが行えるマイグレーションというActiveRecordの機能があります。マイグレーションはデータベースのスキーマ変更をバージョンとして管理するので、いつでもスキーマ変更を元に戻したり再実行できたりします。 本記事では、マイグレ ...

【Rails】忘れがちなGemfileの書き方を総復習

はじめに RailsアプリにGemをインストールするときに使うGemfileですが、意外とその詳しい書き方は把握していないという方も多いと思います。例えば、インストールするバージョンを「2.1.2以上でパッチバージョンのみ上げることを許容」などと指定する方法や、ソースとしてGitHubの特定のブランチを指定する ...

【Rails】Railsアプリで「logmon」を使ってログ監視を行う

はじめに エラーが起こってからログファイルを確認していたのではどうしても初動対応が遅れてしまいます。定期的に手動でログファイルを確認するにしてもすぐにエラーに気付けるとは限りませんし、何より毎回手動で確認するのは大変です。 定期的に自動でログファイルを監視し、エラーが起こったときにメールで通知する「ログ監視ツー ...

【GCP】Google Cloudの無料プログラム「Always Free」でCloud Storageを使う

はじめに Googleが提供するGoogle Cloud Platform (GCP)には2種類の無料プログラムがあります。ひとつはトライアル期間中に利用できる$300分のクレジット、もうひとつは使用量上限の範囲内であれば無料で利用できる「Always Free」と呼ばれるプログラムです。 <iframe cl ...

【Rails】Railsアプリのログローテーション設定を行う

はじめに Railsアプリのログは、初期設定だとひとつのファイルに出力し続けるようになっています。また、古いログが削除されずに延々と蓄積されていくことになるので、そのままにしておくとログが肥大化してディスク領域を圧迫してしまいます。 bash $ ls -lh /var/www/autovice/current ...

【Zapier】Zapier(ザピアー)を使ってブログの更新情報を自動でTwitterに投稿する

はじめに <img data-src="https://i.imgur.com/ytXoLY0.png" class="lazyload effect-fade"> 当ポートフォリオサイトでは、ブログの記事を新しく投稿すると、自動で更新情報がTwitterに投稿されるようになっています。これはTwitter A ...

【Integromat】GoogleのカスタムOAuthクライアントを使用したGoogleサービスへの接続方法

はじめに 当ポートフォリオサイトでは、トップページのコンタクトフォームから送られた内容を自分のGmailアカウントに送信するために「Integromat」というWebサービスを使用しています。 <iframe class="hatenablogcard" style="width:100%; height:15 ...

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

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