はじめに
webアプリケーションを作るための学習記録
(マッチングアプリを作る予定)
こちらのチュートリアルを片っ端から進めていく
【Ruby on Rails チュートリアル】
https://railstutorial.jp/
第7章 ユーザー登録
まとめ
- debugメソッドを使うことで、役立つデバッグ情報を表示できる
- Sassのmixin機能を使うと、CSSのルールをまとめたり他の場所で再利用できるようになる
- Railsには標準で3つ環境が備わっており、それぞれ開発環境 (development)、テスト環境 (test)、本番環境 (production)と呼ぶ
- 標準的なRESTfulなURLを通して、ユーザー情報をリソースとして扱えるようになった
- Gravatarを使うと、ユーザーのプロフィール画像を簡単に表示できるようになる
- form_forヘルパーは、Active Recordのオブジェクトに対応したフォームを生成する
- ユーザー登録に失敗した場合はnewビューを再描画するようにした。その際、Active Recordが自動的に検知したエラーメッセージを表示できるようにした
- flash変数を使うと、一時的なメッセージを表示できるようになる
- ユーザー登録に成功すると、データベース上にユーザーが追加、プロフィールページにリダイレクト、ウェルカムメッセージの表示といった順で処理が進む
- 統合テストを使うことで送信フォームの振る舞いを検証したり、バグの発生を検知したりできる
- セキュアな通信と高いパフォーマンスを確保するために、本番環境ではSSLとPumaを導入した
所感
・RESTアーキテクチャを使うと、どのHTTPリクエストでどのURLに飛ぶと、どのコントローラのどのメソッドを呼び出すか、ということが標準的に定義される。
コントローラのメソッドは、どのテンプレートを呼びだすかデフォルトで定義してくれる。
よって、
1.あるHTTPリクエストで
2.あるURLにアクセスすると
3.あるコントローラの
4.あるメソッドを呼び出して
5.それに対応したテンプレートを返す
・paramsは画面遷移時に渡すパラメータのことか
途中参考にしたページ
・ビューの作成とデータの受け渡し
https://www.javadrive.jp/rails/ini/index5.html#section3
アクションと同名のテンプレートを呼び出すようにできてる
・【Railsメモ】assert_selectについて
https://qiita.com/TakahitoNakashima/items/b439126cd1ee302586d7
・【Rails】assert_notについて
https://teratail.com/questions/138763
・Rails チュートリアル 【初心者向け】 テストを10分でおさらいしよう!
https://qiita.com/duka/items/2d724ea2226984cb544f
・assert_selectの使い方
https://zariganitosh.hatenablog.jp/entry/20080405/1207455670
使用したコマンド
git checkout -b sign-up
rails console test
Rails.env
Rails.env.test?
rails server --environment production
rails db:migrate RAILS_ENV=production
heroku run rails console
puts user.attributes.to_yaml
y user.attributes
User.count
User.first
touch app/views/users/show.html.erb
user = User.first
user.update_attributes(name: "Example User",
email: "example@railstutorial.org",
password: "foobar",
password_confirmation: "foobar")
mkdir app/views/shared
touch app/views/shared/_error_messages.html.erb
rails generate integration_test users_signup
rails db:migrate:reset
git add -A
git commit -m "Finish user signup"
git checkout master
git merge sign-up
rails test
git add -A
git commit -m "Use SSL and the Puma webserver in production"
git push
git push heroku
heroku run rails db:migrate