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

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

SSH接続時に「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」が出る場合の対処法

ConoHa VPSにRails実行環境を構築している際、以前は出ていなかったエラーが出るようになっていて、なんでだろうと思っていたら選択するOSが以前と違っていたからでした。 10月初旬頃に構築したときは、ConoHa VPSで対応しているCentOSのバージョンは7.7が最新だったはずなんですが、11月下旬 ...

MacからサーバーにSSH接続する方法

(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで [その1 サーバー設定編] こちらの記事の「2. SSHの設定」を行っても以下のコマンドでSSH接続できなかったので、MacでSSH接続する方法を調べました。 $ ssh vps_name接続情報の取得順序 SSHコ ...

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

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

ひとつのexpectで複数のchangeを確認する方法

ユーザーに関するフィーチャーテストで、ユーザーを削除したらそのユーザーに関連するモデルも削除されることをテストしたいと思いました。 テスト方法 spec/features/users_spec.rb require 'rails_helper' RSpec.feature "Users", type: ...

Active Record - 関連付けモデルのテスト方法

Modelの設定 UserモデルとFundモデルがあり、Userモデルは複数のFundモデルを持つ関連付けの設定は以下のようになります。 オプションとして、Userモデルが削除されたときに関連するFundモデルも削除することとします。 app/models/user.rb class User < Appl ...

「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 ...

RSpecの勉強をはじめました

今日からRSpecの勉強をはじめました。教材はEveryday Rails - RSpecによるRailsテスト入門です。 RSpecについての教材ですが、ところどころテスト自動化における基本理念のような記述もあり、テスト自動化にあまり慣れていない人にも易しい内容になっています。 私は仕事で少しだけJavaのJ ...

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

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

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

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