AUTOVICE

TECH BLOG

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

2019-11-20
事象 RSpecでテストしようとしたところ、以下のエラーが発生。 $ rspec An error occurred while loading ./spec/models/user_spec.rb. Failure/Error: require File.expand_path('../config/environment', __dir__) NoMethodError: undefined method `active_storage' for #<Rai [...]

RSpecの勉強をはじめました

2019-11-15
今日からRSpecの勉強をはじめました。教材はEveryday Rails - RSpecによるRailsテスト入門です。 RSpecについての教材ですが、ところどころテスト自動化における基本理念のような記述もあり、テスト自動化にあまり慣れていない人にも易しい内容になっています。 私は仕事で少しだけJavaのJUnitを触ったことがある程度なので、本書の内容は隅々まで役に立ちそうです。 現時点で第3章まで完了しました。理解度は70%といったところです。 ですが、はじめから100%を [...]

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

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

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

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

Credentialsが保存されない場合の対処法

2019-10-23
$ EDITOR=vi rails credentials:editいつもどおり上記のコマンドを実行しCredentialsの設定を行っていたところ、あるときからCredentialsが保存されなくなりました。 Credentialsには既にいくつか設定してあって、それらはRailsから呼び出すことができるのですが、新しく設定したキーを呼び出そうとすると「そんなキーないよ」みたいなエラーが出るのです。 対処法 以下のコマンドでCredentialsを設定したら保存されるようになりま [...]

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

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

【Rails】Webpackerを使ってjQueryとBootstrapを管理する方法

2021-02-15
# はじめに 本記事では、Rails 6.0から導入された「Webpacker」を使ってjQueryとBootstrapを管理する方法を説明します。 # WebpackerでjQueryとBootstrapを管理 ## Railsアプリの作成 以下のコマンドを実行して、新しいRailsアプリを作成します。コマンド引数に`_6.0.0_`をつけることで作成するアプリのRailsバージョンを指定することができます。 ```bash $ rails _6.0.0_ [...]

applicatioin.jsにJavaScriptのコードを書くときの注意点

2019-10-22
jQueryを使ってページにちょっとした動きをつけたいと思い、初めはindex.html.erbのようなビューに直接JavaScriptのコードを書いていました。 しかし、JavaScriptのコードが各ビューに散らばっているのはドライなコードとは言えません。特にまったく同じ処理を各ビューに書くのはメンテナンス性が著しく落ちるので絶対に避けたいところです。 そこですべてのJavaScriptコードをapp/javascripts/application.jsに集めて動かしてみたところ [...]

ローカルで行った変更がサーバーに反映されない事象の対処法【Capistrano+Unicorn】

2019-10-12
変更が反映されない ローカルでRailsアプリの変更を行った後、サーバーへ反映させるためデプロイを行いました。 $ bundle exec cap production deploy無事、エラーが出ることもなくデプロイが完了。 しかし、いざWebサイトにアクセスしてみても変更が反映されていませんでした。 Unicornプロセスの再起動失敗 デプロイコマンドを実行したターミナル上にはエラーは出ていなかったんですが、サーバー上のunicorn.logを確認してみると、以下のエラーが出 [...]

Let's Encryptを使用したWebサーバーのSSL化

2019-10-12
前提 独自ドメインを取得していること。 参考:Let's Encrypt で Nginx にSSLを設定する 証明書を取得する前 参考にさせていただいた記事では、証明書を取得する際、オプションを追加してスタンドアローンモードを使用しています。 スタンドアローンモードを使用すると、最後の証明書の取得で以下のようなエラーが出る場合があります。 Problem binding to port 80: Could not bind to IPv4 or IPv6.スタンドアローンモードの [...]