本日のRailsTutorial 4 10章
第10章 ユーザーの更新・表示・削除
演習はほとんどやっていない
10.1 ユーザーを更新する
edit ビューつくる
PATCHリクエストは、更新するときのアクション(update)
10.2 認可
ウェブアプリケーションの文脈では、認証 (authentication) はサイトのユーザーを識別することであり、認可 (authorization) はそのユーザーが実行可能な操作を管理することです。
たとえば、自分の情報を自分以外が編集できないようにすること
フレンドリーフォワーディング
10.3 すべてのユーザーを表示する
ユーザー一覧ページ
管理者権限とユーザー削除の機能追加
ページネーション
10.4 ユーザーを削除する
削除機能の実装
まとめ
- ユーザーは、編集フォームから
PATCH
リクエストをupdate
アクションに対して送信し、情報を更新する - Strong Parametersを使うことで、安全にWeb上から更新させることができる
- beforeフィルターを使うと、特定のアクションが実行される直前にメソッドを呼び出すことができる
- beforeフィルターを使って、認可 (アクセス制御) を実現した
- 認可に対するテストでは、特定のHTTPリクエストを直接送信する低級なテストと、ブラウザの操作をシミュレーションする高級なテスト (統合テスト) の2つを利用した
- フレンドリーフォワーディングとは、ログイン成功時に元々行きたかったページに転送させる機能である
- ユーザー一覧ページでは、すべてのユーザーをページ毎に分割して表示する
rails db:seed
コマンドは、db/seeds.rb
にあるサンプルデータをデータベースに流し込むrender @users
を実行すると、自動的に_user.html.erb
パーシャルを参照し、各ユーザーをコレクションとして表示するboolean
型のadmin
属性をUserモデルに追加すると、admin?
という論理オブジェクトを返すメソッドが自動的に追加される- 管理者が削除リンクをクリックすると、
DELETE
リクエストがdestroy
アクションに向けて送信され、該当するユーザーが削除される - fixtureファイル内で埋め込みRubyを使うと、多量のテストユーザーを作成することができる
感想
演習の内容が主にテストなので、復習して自分でテストをかけるようになればgood
本日のRailsTutorial 3 9章
第9章 発展的なログイン機構
最近のウェブサービスでは、(任意で) ユーザーのログイン情報を記憶しておき、ブラウザを再起動した後でもすぐにログインできる機能 (remember me) を備えていることも一般的になってきました。
そこで本章では、永続クッキー (permanent cookies) を使ってこの機能を実現していきます。具体的には、まずユーザーのログイン情報を長く記憶する方法 (例えばBitbucketやGitHubが使っている方法) について学びます。その後、[remember me] チェックボックスを使って、ユーザーの任意でログイン情報を記憶する方法について学びます (例えばTwitterやFacebookも使っていますね)。
9.1 Remenber me 機能
実装の方針はこのよう
- 記憶トークンにはランダムな文字列を生成して用いる。
- ブラウザのcookiesにトークンを保存するときには、有効期限を設定する。
- トークンはハッシュ値に変換してからデータベースに保存する。
- ブラウザのcookiesに保存するユーザーIDは暗号化しておく。
- 永続ユーザーIDを含むcookiesを受け取ったら、そのIDでデータベースを検索し、記憶トークンのcookiesがデータベース内のハッシュ値と一致することを確認する。
9.2 [Remember me] チェックボックス
ログインを保存するためのチェックボックス作成
9.3 [Remember me]のテスト
チェックボックスのテスト
よくわかんなかった、、
9.4 最後に
デプロイ
マージ
heroku マイグレーション
メンテナンスモード使った
まとめ!
- Railsでは、あるページから別のページに移動するときに状態を保持することができる。ページの状態を長期間保持したいときは、
cookies
メソッドを使って永続的なセッションにする - 記憶トークンと記憶ダイジェストをユーザーごとに関連付けて、永続的セッションが実現できる
cookies
メソッドを使うと、ユーザーのブラウザにcookiesなどを保存できる- ログイン状態は、セッションもしくはクッキーの状態に基づいて決定される
- セッションとクッキーをそれぞれ削除すると、ユーザーのログアウトが実現できる
- 三項演算子を使用すると、単純なif-then文をコンパクトに記述できる
感想
今回は二回ほど読み返して少し理解できたかなってところ、演習までは手が回らなかったのでまたいつかやれれば、、
理解度60%!
本日のRails Tutorial 2 8章
第8章 基本的ログイン機構
ユーザーがログイン、ログアウトできるようにする。
8.1 セッション
httpはステートレス(stateless)なプロトコル→リクエストが終わると忘れる。独立したトランザクションになっている。
sessionというrailsのメゾットを使い一時セッションをつくる。これはブラウザを閉じると自動的に終了する。
sessionコントローラとroutesを設定
演習 1
get と postの違いについて
演習2
ターミナルのパイプ機能とgrepをつかう
ログインフォームを整える。
form_forをつかう
ユーザーの認証と検索
フラッシュメッセージを表示する
8.2 ログイン
ログインメゾットを作成
cookieの情報
論理演算子
レイアウトリンク(ログインした場合、してない場合)
テスト
8.3 ログアウト
ログアウト機能の追加
ログアウトメゾット
テスト
感想
だんだんと細かいところが説明できなくなってきた、、
まとめ!
- Railsの
session
メソッドを使うと、あるページから別のページに移動するときの状態を保持できる。一時的な状態の保存にはcookiesも使える - ログインフォームでは、ユーザーがログインするための新しいセッションが作成できる
flash.now
メソッドを使うと、描画済みのページにもフラッシュメッセージを表示できる- テスト駆動開発は、回帰バグを防ぐときに便利
session
メソッドを使うと、ユーザーIDなどをブラウザに一時的に保存できる- ログインの状態に応じて、ページ内で表示するリンクを切り替えることができる
- 統合テストでは、ルーティング、データベースの更新、レイアウトの変更が正しく行われているかを確認できる
本日のRails Tutorial1 7章
7章からだけど、今回からまとめていこうと思う。
ユーザー登録
7.1
まず、ユーザーの名前とプロフィール写真を表示するためのページ作成。
初めての真に動的なページらしい。(このアプリケーションで)
デバッグ情報追加(開発環境だけに表示)
Gravatar・・・アップロードしたプロフィール写真とメールアドレスを関連付けることができる。
いろいろ設定する(適当
7.2 ユーザー登録フォーム
form_for ヘルパーを使う。
7.3 ユーザー登録失敗
あえてエラーを出して理解を深める、、らしい
大事なところっぽいのでしっかり理解したい(いつか
エラーメッセージを表示するための設定。
テスト
演習よくわからなかったので、要復習
7.4 ユーザー登録成功
ユーザー登録に成功した時のリダイレクト redirect_to @user
flashつかう
成功時のテスト
演習やってない
7.5 プロのデプロイ
本番環境でのSSL(secure socket layer)
SSL はあとで詳しく調べよう。。https になるくらいしかしらない
本番環境でSSLをセットアップ。heroku設定する。
WebsサーバーをWEBrick からPumaへ
本番環境へデプロイ
終了ってことでまとめはコピペ
理解度は半分行ってないくらい、全体は把握
7.6.1 本章のまとめ
debug
メソッドを使うことで、役立つデバッグ情報を表示できる- Sassのmixin機能を使うと、CSSのルールをまとめたり他の場所で再利用できるようになる
- Railsには標準で3つ環境が備わっており、それぞれ
開発環境 (development)
、テスト環境 (test)
、本番環境 (production)
と呼ぶ - 標準的なRESTfulなURLを通して、ユーザー情報をリソースとして扱えるようになった
- Gravatarを使うと、ユーザーのプロフィール画像を簡単に表示できるようになる
form_for
ヘルパーは、Active Recordのオブジェクトに対応したフォームを生成する- ユーザー登録に失敗した場合はnewビューを再描画するようにした。その際、Active Recordが自動的に検知したエラーメッセージを表示できるようにした
flash
変数を使うと、一時的なメッセージを表示できるようになる- ユーザー登録に成功すると、データベース上にユーザーが追加、プロフィールページにリダイレクト、ウェルカムメッセージの表示といった順で処理が進む
- 統合テストを使うことで送信フォームの振る舞いを検証したり、バグの発生を検知したりできる
- セキュアな通信と高いパフォーマンスを確保するために、本番環境ではSSLとPumaを導入した
ゲーミングキーボード ってなんぞや
先日、新しくキーボードを新調したので、
簡単にキーボードの種類についてまとめてみようかな。
今回買ったのはLogicool製品ゲーミングキーボード amazonで一万二千円くらい。
以前友人のキーボードがこれだったので、試しに触って感動。
https://www.amazon.co.jp/Logicool-%E3%82%B2%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%AD%E3%83%
Logicool G PRO X ゲーミングキーボード テンキーレス G-PKB-002 ブラック クリッキースイッチ 日本語配列 RGB 着脱式ケーブル 国内正規品 2年間メーカー保証
- 発売日: 2019/11/14
- メディア: Personal Computers
基本的な構造の違い
複数キーの同時押しができる
メカニカル
静電容量無接点
複数キーの同時押しができる
- FPSなどのシューティング系では、走りながら(shft)武器を変えたり、斜めに移動するときなどに同時にキーを入力することがあるため必要
メンブレン
前使ってたキーボードはこのタイプ
- 安い
- タイプした時音が小さい
- メカニカルより壊れやすい。(とはいっても、前のキーボードは二年くらい使ったけどこわれてない。wキーがすこし沈んだ感じになっただけ。)
メカニカル
今回買ったキーボード(青軸)
- メンブレンより値段が高い
- 打鍵感が気持ちいい
- 軸の種類があり、途中で付け替えたりできる。(赤、青、茶、銀、etc)
- 壊れにくい
- 人によってはうるさい。
静電容量無接点
- 高い
- もっと壊れにくい
- 疲れない
- 種類が少ない
あとゲーミングキーボードは光っているやつ多め(かっこいい)
これでFPSがうまくなるはず!(関係ない)
投資を始めたきっかけ
投資とは
将来のリターン(収益)を期待してお金を投下するということ、リスクはあるが、資産形成していく手段のひとつである。
投資対象となるものは、株、不動産、債券、投資信託、ETF、日経225先物、FX、REIT、バイナリーオプションなどがある。
もともと、投資には興味があったし経済ことを本などで読んだりしていたから、将来的にはやっていくつもりでいたが、実際に友人が既にやっていることを知ったと同時に本格的に勉強しようという気持ちになった。
(ちなみに友人の場合バイナリーオプション、バイナリーオプションがいいかどうかはまた別の機会で)
それなりに情報を集めた結果、少額の資金でも短期で爆発的に増やすことができる可能性があることが分かった(もちろんリスクも伴う)。
30代40代である程度資金があるなら、将来的に長期で安定して運用して行きたいと思うところだが、まだ若いし、短期で挑戦していくことは、知識と経験を得るという面でも、モチベーションの面でも価値はあるだろうと考えている。
しばらくはひたすら情報収集の予定。