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

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

【Rails】GitHubからセキュリティアラートが届いたときの対応【Gemfile】

はじめに GitHubでソース管理を行っていると、ときどきGitHubからセキュリティアラートのメールが届くことと思います。 該当のリポジトリを見てみると以下のようにセキュリティアラートが並んでいて少しびっくりしてしまいます。 <img data-src="https://i.imgur.com/S3RxpPZ ...

【2019年版】RailsアプリからTwitterに更新内容を自動投稿!RailsとTwitterの連携機能を実装

はじめに Railsアプリで作ったブログなどで更新内容をTwitterに投稿するといった連携機能を実装する方法を解説します。 実装するにはまずTwitter APIに登録する必要があるのですが、登録方法が年々(主に複雑なほうへと)変化しているようなので、2019年12月現在の登録方法で書いています。 Twitt ...

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

はじめに Rails 6でAction Textという機能が追加されました。Action Textを使えば簡単にリッチテキストエディターを実装することができます。Action TextはTrixエディターを使用しています。Trixエディターは「WYSIWYG」と呼ばれる編集方式を採用しているエディターです。 W ...

Capistranoでデプロイしたときにリモートリポジトリ(Github)への接続に失敗する場合の対処法

Capistranoを使ってRailアプリをデプロイするとき、直接サーバーに送るのではなく、Githubを経由してファイルが送信されます。 そのため、あらかじめサーバー上で秘密鍵と公開鍵の組み合わせを生成し、公開鍵をGithubに登録しておく必要があります。 そして接続情報は設定ファイル(/etc/ssh/ss ...

taglib-rubyを使用してオーディオファイルの長さを取得する方法

Rubyでオーディオファイルを扱うGemはたくさんありますが、今回はmp3とwavの両方を扱う必要があったのでtaglib-rubyを使うことにしました。 ひとつのGemでmp3とwavの両方を使えるのは大変ありがたいです。 最後にHerokuにデプロイする方法とConoHa VPS (CentOS 7.7)に ...

「NoMethodError: undefined method `active_storage' for ...」の原因と対処

事象 RSpecでテストしようとしたところ、以下のエラーが発生。 $ rspec An error occurred while loading ./spec/models/user_spec.rb. Failure/Error: require File.expand_path('../config ...

SSL通信時にセッションを暗号化する方法

以前、「Let's Encryptを使用したWebサーバーのSSL化」という記事を書きました。 実はこの設定だけでは不十分だったので、今回はその続きを書きます。 セッションが保存されない このポートフォリオサイトでは管理者のみがログインできる機能を持っています。 Railsチュートリアルを見ながら作った自前の ...

コンタクトフォームに確認チェックボックスを追加する方法

今回はコンタクトフォームに確認チェックボックスを追加する方法を記載します。 送信ボタンの上あたりにある「上記の内容で送信します。よろしければチェックを入れてください。」というやつです。 コンタクトフォームだけでなく、ユーザー登録画面の「規約に同意する。」といったチェックボックスにも使えます。 Model cl ...

Active Storageの保存先にGCSを使う場合のstrorage.ymlとCredentialsの設定方法

GCSからダウンロードしたサービスアカウントキーをRailsのconfig/storage.ymlに設定します。 その際、最低限、private_key_idとprivate_keyはCredentialsに登録し呼び出すように設定する必要があるのですが、private_keyには改行(\n)が入っていて、普通 ...