AUTOVICE

TECH BLOG

【完全無料でSSL化】RailsアプリをNginxで動かす!Nginxのインストール方法から最低限しておきたい設定まで

2019-12-09
RailsアプリをNginxで動かすために、Nginxをサーバーに導入する方法と最低限これだけはしておきたいという設定をまとめます。 • ローカル環境:macOS Catalina • サーバー環境:CentOS 7.7 Nginxインストール ターミナルで以下のコマンドを実行し、サーバーにSSH接続します。 SSH接続の設定は事前に行っておいてください。 $ ssh server Enter passphrase for key '/Users/user/.ssh/serve [...]

ページ最下部に設置したフォームでエラー処理を行う方法

2019-12-09
当ポートフォリオサイトのコンタクトフォームはトップページの最下部に設置しています。 コンタクトフォームをページ最下部に設置することでひとつ問題点が出てきます。それは、エラー発生時(未入力項目がある等)にページ最下部にあるコンタクトフォームに遷移できないこと。 今回のケースにおけるrenderメソッドとredirect_toメソッドそれぞれの問題点と、最終的に行き着いた解決策を記載します。 renderの問題点 一般的にコンタクトフォームの送信処理は以下のように記述するかと思います。 [...]

「HTTP (TCP/80)/HTTPS (TCP/443)」「サブドメイン(www)あり/なし」の違いによるアクセスを一本化

2019-12-09
ウェブサイトのURLは「HTTP (TCP/80)/HTTPS (TCP/443)」「サブドメイン(www)のあり/なし」を組み合わせた4パターンが考えられます。 当ポートフォリオサイトの場合、以下の4つのURLでアクセスされる可能性があるということです。 • http://autovice.jp/ • http://www.autovice.jp/ • https://autovice.jp/ • https://www.autovice.jp/ どのURLでアクセスされたとして [...]

独自ドメインのメールアドレスでメールを送受信する方法【ほぼ無料】

2019-12-09
当ポートフォリオサイトでは自前のコンタクトフォームを設置しています。 コンタクトフォームにて入力されたお問い合わせ内容は「info@autovice.jp」という独自ドメインのメールアドレス宛に送信する設定になっています。 通常、メールを送るためにはメールサーバーが必要です。 メールサーバーは自前で用意するかメールサーバー提供サービスを利用する必要があります。 自前で用意する場合は構築とメンテナンスが大変ですし、メールサーバー提供サービスを利用するにはお金が必要です。 しかし、いわ [...]

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

2019-11-28
Capistranoを使ってRailアプリをデプロイするとき、直接サーバーに送るのではなく、Githubを経由してファイルが送信されます。 そのため、あらかじめサーバー上で秘密鍵と公開鍵の組み合わせを生成し、公開鍵をGithubに登録しておく必要があります。 そして接続情報は設定ファイル(/etc/ssh/ssh_config または ~/.ssh/config)に記述しておくのですが、接続情報をきちんと書かないとデプロイに失敗してしまいます。 事象 以下のコマンドでRailsアプ [...]

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

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

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

2019-11-27
(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで [その1 サーバー設定編] こちらの記事の「2. SSHの設定」を行っても以下のコマンドでSSH接続できなかったので、MacでSSH接続する方法を調べました。 $ ssh vps_name接続情報の取得順序 SSHコマンドは以下の順序で接続情報を取得します。 1. コマンドラインオプション 2. ユーザごとの設定ファイル(~/.ssh/config) 3. システム全体にわたる (syst [...]

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

2019-11-28
Rubyでオーディオファイルを扱うGemはたくさんありますが、今回はmp3とwavの両方を扱う必要があったのでtaglib-rubyを使うことにしました。 ひとつのGemでmp3とwavの両方を使えるのは大変ありがたいです。 最後にHerokuにデプロイする方法とConoHa VPS (CentOS 7.7)にデプロイする方法も記載します。 インストール まずはtaglibをインストールします。ターミナルで以下を実行します。 $ brew install taglibHomeBre [...]

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

2019-11-22
ユーザーに関するフィーチャーテストで、ユーザーを削除したらそのユーザーに関連するモデルも削除されることをテストしたいと思いました。 テスト方法 spec/features/users_spec.rb require 'rails_helper' RSpec.feature "Users", type: :feature do scenario 'user deletes a user' do user = FactoryBot.create(:user) [...]

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

2019-11-20
Modelの設定 UserモデルとFundモデルがあり、Userモデルは複数のFundモデルを持つ関連付けの設定は以下のようになります。 オプションとして、Userモデルが削除されたときに関連するFundモデルも削除することとします。 app/models/user.rb class User < ApplicationRecord ... has_many :funds, dependent: :destroy endapp/models/fund.rb clas [...]