あっぴ~logs

まだ見ぬ世界へ

本日の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] チェックボックスを使って、ユーザーの任意でログイン情報を記憶する方法について学びます (例えばTwitterFacebookも使っていますね)。

 
9.1 Remenber me 機能

実装の方針はこのよう

  1. 記憶トークンにはランダムな文字列を生成して用いる。
  2. ブラウザのcookiesにトークンを保存するときには、有効期限を設定する。
  3. トークンはハッシュ値に変換してからデータベースに保存する。
  4. ブラウザのcookiesに保存するユーザーIDは暗号化しておく。
  5. 永続ユーザー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の違いについて

qiita.com

 

演習2

ターミナルのパイプ機能とgrepをつかう

 

【初心者向け】Linuxパイプラインの使い方を詳しく!

 

grepコマンドの詳細まとめました【Linuxコマンド集】

 

 

ログインフォームを整える。

form_forをつかう

ユーザーの認証と検索

フラッシュメッセージを表示する

 

8.2 ログイン

ログインメゾットを作成

 

cookieの情報

主要ブラウザCookieの確認方法まとめ - Qiita

 

論理演算子

Ruby入門 - 演算子 - とほほのWWW入門

 

レイアウトリンク(ログインした場合、してない場合)

 

テスト

 

8.3 ログアウト

ログアウト機能の追加

ログアウトメゾット

テスト

 

感想

だんだんと細かいところが説明できなくなってきた、、

 

 

 

まとめ!

  • Railssessionメソッドを使うと、あるページから別のページに移動するときの状態を保持できる。一時的な状態の保存には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を導入した

ゲーミングキーボード ってなんぞや

先日、新しくキーボードを新調したので、

簡単にキーボードの種類についてまとめてみようかな。

 

f:id:APPY:20200504175318j:image

 

今回買ったのは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%

 

 

 

 

 基本的な構造の違い

複数キーの同時押しができる

メンブレン

カニカル

静電容量無接点

 

複数キーの同時押しができる

  • FPSなどのシューティング系では、走りながら(shft)武器を変えたり、斜めに移動するときなどに同時にキーを入力することがあるため必要

 

 

メンブレン

前使ってたキーボードはこのタイプ

  • 安い
  • タイプした時音が小さい
  • カニカルより壊れやすい。(とはいっても、前のキーボードは二年くらい使ったけどこわれてない。wキーがすこし沈んだ感じになっただけ。)

 

カニカル

今回買ったキーボード(青軸)

  • メンブレンより値段が高い
  • 打鍵感が気持ちいい
  • 軸の種類があり、途中で付け替えたりできる。(赤、青、茶、銀、etc)
  • 壊れにくい
  • 人によってはうるさい。

 

静電容量無接点

  • 高い
  • もっと壊れにくい
  • 疲れない
  • 種類が少ない

 

あとゲーミングキーボードは光っているやつ多め(かっこいい)

 

これでFPSがうまくなるはず!(関係ない)

 

 

投資を始めたきっかけ

投資とは

kotobank.jp

将来のリターン(収益)を期待してお金を投下するということ、リスクはあるが、資産形成していく手段のひとつである。

 

投資対象となるものは、株、不動産、債券、投資信託ETF、日経225先物、FX、REITバイナリーオプションなどがある。

 

 もともと、投資には興味があったし経済ことを本などで読んだりしていたから、将来的にはやっていくつもりでいたが、実際に友人が既にやっていることを知ったと同時に本格的に勉強しようという気持ちになった。

(ちなみに友人の場合バイナリーオプションバイナリーオプションがいいかどうかはまた別の機会で)

 

それなりに情報を集めた結果、少額の資金でも短期で爆発的に増やすことができる可能性があることが分かった(もちろんリスクも伴う)。

30代40代である程度資金があるなら、将来的に長期で安定して運用して行きたいと思うところだが、まだ若いし、短期で挑戦していくことは、知識と経験を得るという面でも、モチベーションの面でも価値はあるだろうと考えている。

 

しばらくはひたすら情報収集の予定。

 

 

☆自己紹介☆ あっぴ~について

    20歳くらい、最近運転免許をGET

    今の関心分野は投資系や関連する経済について

 趣味

  • PCゲーム主にFPS(バンバン打つやつ) 一年ほど  
  • ソロギター(メロディも弾くスタイル?) ジブリとか
  • 読書、ジャンルはいろいろ小説はあんまり読まないかも。好きな著者苫米地英人さん(科学者、ギタリスト、etc)
  • アニメ(Netflixで見れるやつ)

 

基本は家に引きこもっている状態だがたまに旅行したりする。