Rails5

【Rails5】assert_differenceで複数の値をチェックする

概要 特定の処理の前後における数値の増減をテストしたいことはよくあります. 例えばPOSTリクエストの前後でUserが増加するテストなどです. これをテストするにはassert_differenceというメソッドを使い, 次のように書けばいいですね. assert_difference 'Us…

【Rails】RakeタスクをMinitestでテストしてみた

はじめに TDDでRakeタスクを作ろうとしたものの, テストをどう書けば良いのかがわかりませんでした. ネット上にあるのは, RSpecの記事や英語の記事ばかりだったため, MinitestでRakeタスクをテストする方法を書き残しておくことにしました. 主に参考にしたの…

【Rails5】数時間溶かしたエラーの原因はRoutingにあった

長時間悩んだ末にエラーが解決できると, なんとも言えない達成感があります. それと同時に,「俺の時間があああ」とも思いますが... 今回時間を奪ったものは正確に言うと, エラーではなくテストです. 何度やってもテストが通りませんでした. しかしエラーも引…

【Rails5】Herokuへのデプロイ

基本的に【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】を参考にさせてもらった. でもやっぱりね, エラーは出るもんですよ. 赤文字で出たエラーがこれ. Precompiling assets failed. だからこればっかり検索してたんだけど, あ…

【Rails5】Autoprefixer doesn’t support Node v4.8.2. というエラーへの対処法

Rails5での開発中に Autoprefixer doesn’t support Node v4.8.2. というエラーに遭遇しました. (少なくとも私の環境では解決した)対処法をまとめました. 環境 MacOS 10.13.6 Rails 5.2.0 Docker 18.06.0-ce 対処法 検索してみると, Stack Overflowで質問され…

【Rails5】`find`と`find_by`の違い

単一のレコードを取得する2つのメソッドの違いをまとめました. これについての記事はいくらでもあるけどね. 違い find idで検索を行う. レコードが見つからない場合はエラー. User.find(1000) ActiveRecord::RecordNotFound (Couldn't find User with 'id'=1…

has_manyで関連づけられたモデルも一括保存する方法

Nested Attributesによって, has_manyで関連づけられたモデルのデータも丸ごと保存する方法を紹介します. モデル例 本記事では例として以下のようなモデルを扱うことにします. class User < ApplicationRecord has_many :posts end class Post < Application…