HaskellでCLIツールを作っているときに, 本記事のタイトルにあるようなことを疑問に思いました. 例えばサイコロを表すデータ型を次のように定義したとしましょう(diceの単数形はdieであることに注意). ここではDieモジュールの中でDie型を定義しています. mo…
概要 特定の処理の前後における数値の増減をテストしたいことはよくあります. 例えばPOSTリクエストの前後でUserが増加するテストなどです. これをテストするにはassert_differenceというメソッドを使い, 次のように書けばいいですね. assert_difference 'Us…
はじめに TDDでRakeタスクを作ろうとしたものの, テストをどう書けば良いのかがわかりませんでした. ネット上にあるのは, RSpecの記事や英語の記事ばかりだったため, MinitestでRakeタスクをテストする方法を書き残しておくことにしました. 主に参考にしたの…
本記事の目的 解説 Stateモナドの定義 ひとつの補題 コードを読み解いていく まずは部分的に そして全体へ まとめ 本記事の目的 Stateモナドの挙動を定義から導出したい. それが本記事の目標です. Stateモナドについて調べると, いくつかの記事がヒットしま…
概要 まだまだExcelさんは現役ですね. でもMac使いだとOfficeがインストールされていなかったり, 共有したいときに不便だったりします. そんなときはGoogleスプレッドシートに変換してしまいましょう. GoogleDrive上でExcelファイルを開くと, 「Googleスプレ…
概要 Google Apps Scriptを使って, Google Drive上のファイルにアクセスしてみました. 当然ながら, アクセスするのは自分のGoogleアカウントに紐づいたDriveです. 情報源 基本的には公式リファレンスを読めば大体のことがわかります. 困ったときはそちらを参…
Slack Botの土台をGASで構築 業務効率を上げたり, 時には癒しをくれたり, 調べてみると様々なBotの活用事例があるようです. この記事ではSlackBotの土台となるものをGASで構築していきます. ゴール この記事を読んだらなにができるようになるかを述べておき…
長時間悩んだ末にエラーが解決できると, なんとも言えない達成感があります. それと同時に,「俺の時間があああ」とも思いますが... 今回時間を奪ったものは正確に言うと, エラーではなくテストです. 何度やってもテストが通りませんでした. しかしエラーも引…
基本的に【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】を参考にさせてもらった. でもやっぱりね, エラーは出るもんですよ. 赤文字で出たエラーがこれ. Precompiling assets failed. だからこればっかり検索してたんだけど, あ…
Rails5での開発中に Autoprefixer doesn’t support Node v4.8.2. というエラーに遭遇しました. (少なくとも私の環境では解決した)対処法をまとめました. 環境 MacOS 10.13.6 Rails 5.2.0 Docker 18.06.0-ce 対処法 検索してみると, Stack Overflowで質問され…
単一のレコードを取得する2つのメソッドの違いをまとめました. これについての記事はいくらでもあるけどね. 違い find idで検索を行う. レコードが見つからない場合はエラー. User.find(1000) ActiveRecord::RecordNotFound (Couldn't find User with 'id'=1…
前置き 私はRails Tutorialを1周しただけの初心者ですから, いろいろツッコミどころがあるかもしれません. ご容赦くださいませ. やりたいこと たとえばボクサーのデータベースシステムを作るとします(ボクシング全然知りませんが...). データベースには名前(…
Nested Attributesによって, has_manyで関連づけられたモデルのデータも丸ごと保存する方法を紹介します. モデル例 本記事では例として以下のようなモデルを扱うことにします. class User < ApplicationRecord has_many :posts end class Post < Application…
14.1 Relationshipモデル 14.1.1 演習1 演習2 14.1.2 演習1, 2 14.1.3 演習1 14.1.4 演習1, 2 14.1.5 演習1 演習2, 3 14.2 [follow]のWebインターフェース 14.2.1 演習1, 2 14.2.2 演習1, 2 演習3 14.2.3 演習1, 2 14.2.4 演習1 演習2 14.2.5 演習1 演習2 14…
13.1 Micropostモデル 13.1.1 演習1 演習2 演習3 13.1.2 演習1 演習2 13.1.3 演習1 演習2 演習3 13.1.4 演習1, 2 演習3 13.2 マイクロポストを表示する 13.2.1 演習1 演習2 演習3 13.2.2 演習1, 2 演習3 13.2.3 演習1, 2 13.3 マイクロポストを操作する 13.3…
12.1 PasswordResets リソース 12.1.1 演習1 演習2 12.1.2 演習1 12.1.3 演習1 演習2 12.2 パスワード再設定のメール送信 12.2.1 演習1, 2, 3 12.2.2 演習1 演習2 12.3 パスワードを再設定する 12.3.1 演習1 演習2 12.3.2 演習1, 2 12.3.3 演習1 演習2 演習3…
11.1 AccountActivations リソース 11.1.1 演習1 演習2 11.1.2 演習1 演習2 11.2 アカウント有効化のメール送信 11.2.1 演習1 11.2.2 演習1 11.2.3 演習1, 2 11.2.4 演習1 演習2 11.3 アカウントを有効化する 11.3.1 演習1, 2 11.3.2 演習1, 2 11.3.3 演習1,…
10.1 ユーザーを表示する 10.1.1 演習1 演習2 気になった点その1 気になった点その2 10.1.2 10.1.3 演習1 10.1.4 10.2 認可 10.2.1 演習1 10.2.2 演習1 演習2 10.2.3 演習1 演習2 10.3 すべてのユーザーを表示する 10.3.1 演習1 10.3.2 演習1 10.3.3 演習1 …
9.1 Remember me 機能 9.1.1 演習1 演習2 9.1.2 疑問1 current_userメソッドの定義 疑問2 どうしてログアウトできないのか 演習1, 2 9.1.3 演習1 9.1.4 演習1, 2, 3 9.2 [Remenber me] チェックボックス 9.3 [Remember me] のテスト 9.3.1 演習1 9.3.2 9.1 R…
8.1 セッション 8.1.1 演習1 演習2 8.1.2 演習1 8.1.3 演習1 8.1.4 8.1.5 演習1 8.2 ログイン 8.2.1 演習1 演習2 8.2.2 演習1 演習2 8.2.3 演習1, 2 8.2.4 演習1, 2 8.2.5 演習1, 2 8.3 ログアウト 演習1 演習2 8.1 セッション 8.1.1 演習1 省略. 演習2 rout…
7.1 ユーザーを表示する 7.1.1 演習1 演習2 7.1.2 演習1, 2 7.1.3 演習2 7.1.4 演習1, 2 演習3 7.2 ユーザー登録フォーム 7.2.1 演習1 演習2 7.2.2 演習1 7.3 ユーザー登録失敗 7.3.1 7.3.2 演習1 7.3.3 演習1 演習2 7.3.4 演習1 演習2 演習3 演習4 7.4 ユー…
概要 Railsチュートリアルの第7章でByebugを使っています. Docker環境でByebugを利用するためには, 追加手順が必要なので書き残しておきます. 本当ははじめから全てが整った環境を構築できれば申し分ないですが, 途中からでも以下の手順を実行すれば問題あり…
概要 DockerでRails環境を構築すると, コンテナが起動しないトラブルに見舞われることがあります. その原因と対処法を説明します. トラブルケース 以下のようなコマンドでRails Serverが稼働しているコンテナに入ったとします. docker-compose exec <Rails container> bash 一</rails>…
6.1 Userモデル 6.1.1 演習1 schema.rbの内容は以下の通りです. ActiveRecord::Schema.define(version: 2018_06_25_044152) do create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.string "name" t.string "em…
5.1 構造を追加する 5.1.1 レイアウトファイルを更新し, home.html.erbも編集をします. curlコマンドでRailsのロゴをダウンロードしました. 確認のためにFinderからロゴ画像を開いたところ, 邪魔な.DS_Storeファイルが生成されてしまいました. $ git status …
Railsチュートリアルの第4章です. この章はわりと演習が楽しかったですね. 4.1 動機 トピックブランチを作成し, チェックアウトします. 4.1.1 省略. 4.1.2 カスタムヘルパーの作成は, 4.2を終えてからにします. 4.2 文字列とメソッド 4.2.1 省略. 4.2.2 省略…
Railsチュートリアルの第3章を進めた際のメモです. チュートリアルに書かれていることは書かないようにしています. かなり個人的なメモですから, 参考程度にご覧ください. 3.1 セットアップ Dockerを使って環境を構築しました. 詳しくはこちらで解説していま…
Railsチュートリアルの第2章を進めました. 概観をつかむ章ですね. 2.1 アプリケーションの計画 2.2 Usersリソース 2.2.1 演習1 演習2, 3 演習4 2.2.2 演習1 演習2 演習3 2.3 Micropostsリソース 2.3.1 演習1 演習2 演習3 演習4 2.3.2 演習1 演習2 2.3.3 演習…
環境構築 開発環境はDockerを使って構築しました. 詳細な手順は以前の投稿にて詳しく解説しています. 環境構築の時点で, rails newまで終わらせています. ファイルを編集する前にGitリポジトリを作成しました. Gemfileの編集 チュートリアル通りのバージョン…
Railsチュートリアルを進めるための環境を構築しました. 概要 作業環境 ひとつの疑問 各種ファイル MySQLコンテナ用のDockerfile Webサーバーコンテナ用のDockerfile 2つのコンテナをまとめて扱うComposeファイル GemfileとGemfile.lock Railsアプリの骨組み…