人生は短く、睡眠は長い

8時間寝ないとキツい

Rails_Turorial_10

10.2 認可

 

 

editアクションやupdateアクションでログインを要求するようになったため、ログインしていないユーザーだとこれらのテストが失敗するようになったためです。

このため、editアクションやupdateアクションをテストする前にログインしておく必要があります 

 

10.2.2

fixtureに2人目を追加して、異なるユーザーでのアクセスを検証していく。

 

10.2.3 フレンドリーフォワーディング

この辺はUX的な話やね。

 

10.3

ユーザー一覧

 

10.4

dbにseedsを追加。

 

f:id:taiga-ishii:20180819135746p:plain

 

データが多くなったので、ページネーションする。

 

 @users = User.paginate(page: params[:page])

 

 

ほいよ。

f:id:taiga-ishii:20180819142506p:plain

投稿系のサービスには、必須の機能ですな。

 

adminによるユーザ管理を実装して完了。

 

Raild_Tutorial_09

9.1

より安全性の高いユーザ情報の保持を実装する。

cookiesを永続化するとセッションハイジャックという攻撃を受ける可能性があります。この攻撃は、記憶トークンを奪って、特定のユーザーになりすましてログインするというものです。 

 

セキュリティ、空気のような存在のため意識されないが、webに関わる上で避けては通れませんね。

 

今回のマイグレーション名も_to_usersで終わっています。これは、マイグレーションの対象がデータベースのusersテーブルであることをRailsに指示するためのものです。 

 マイグレーション名って意味あるのか...

 

attr_accessor :remember_token

↑わかってない

 

9章、Railsの仕様理解が甘いとつまずくポイントな気がしている。

無論、私も躓いている。

 

署名付きcookies

Dが生のテキストとしてcookiesに保存されてしまうので、アプリケーションのcookiesの形式が見え見えになってしまい、攻撃者がユーザーアカウントを奪い取ることを助けてしまう可能性があります。これを避けるために、署名付きcookieを使います。

 

この辺り、ほぼ理解できない。

正確には、理解するための材料を知識として持ち合わせていない。

そういう感覚がある。

 

Rails_Tutorial_07

デバッグの設定

 blog.<%= debug(params) if Rails.env.development? %>

 

 

routesの追加

resources :users 

 これ一つで色々やってくれる。=RESTfulなルートにしてくれる。

progateで一個一個書いておいてよかった。

 

actionとviewも追加。

ほいよ、アチアチのUserプロフィール画面。

 

7.1.3 debugメソッド

今後Railsアプリケーションの中でよく分からない挙動があったら、上のようにdebuggerを差し込んで調べてみましょう。トラブルが起こっていそうなコードの近くに差し込むのがコツです。byebug gemを使ってシステムの状態を調査することは、アプリケーション内のエラーを追跡したりデバッグするときに非常に強力なツールになります。

 

7.1.4 Gravatar

 

Gravatar_forメソッド。

 

<% provide(:title, @user.name) %>
<div class="row">
  <aside class="col-md-4">
    <section class="user_info">
      <h1>
        <%= gravatar_for @user %>
        <%= @user.name %>
      </h1>
    </section>
  </aside>
</div>

 

bootstrapのasideでサイドバーをいい感じにする。

scssも追加。

 

フロントエンド、bootstrapとscssがなかったら、どんだけ大変なんだ。

 

7.2.1 form_for

ほいよ、アチアチのsignup画面ね。

だいぶそれっぽい。テンション上がる。

 

 

user_paramsという外部メソッドを使うのが慣習になっています。このメソッドは適切に初期化したハッシュを返し、params[:user]の代わりとして使われます。 

ん〜?

 

error_messages

 

 

 

ユーザー登録機能を実装。

ほいよ、アチアチの登録成功画面ね。

f:id:taiga-ishii:20180817161909p:plain

 

SSL化もやる。

Rails_Tutorial_06

6章はログイン周り。

認証かー。Facebook認証とかにすればいいじゃん、と思うが。

ひとまず勉強のためにやる。

 

Active Recordのおかげで、SQLを意識しないでDB触れるのよね。

 

rails g modelでUserモデルを作成。

コントローラ名には複数形を使い、モデル名には単数形を用いるという慣習を頭に入れておいてください。コントローラはUsersでモデルはUserです。

 

dbのmigrationファイルも勝手に作られているので、migrateする。

 

6.1.3

railsコンソールでUserモデルをいじるやつ。

progateでやったで。

 

 

6.2.1 validates周辺のテスト

テスト書くのきついんご。

 

emailのフォーマット検証のテストとか最悪すぎる。

これは自分で書きたくないで。

 

テスト駆動が辛すぎる。

 

emailにindexをつける。

migrationファイルを作る。

 

ここでfixture登場。

なんだよそれ。

 

rails db:migrateが通らない...と思ったら、

endが一個多かっただけだった。。。。

 

6.3

セキュアなパスワード

ここら辺はgem頼み。

 

 

Rails_Tutorial_05

5章はレイアウトなど、CSS関連が多めの章です。

 

5.1.1

<header class="navbar navbar-fixed-top navbar-inverse">

headerにnavbarを入れる。

bootstrap触ったことあるとわかりますね。

 

f:id:taiga-ishii:20180816200352p:plain

 

5.1.2

Bootstrapフレームワークでは、動的なスタイルシートを生成するためにLESS CSS言語を使っていますが、RailsのAsset Pipelineはデフォルトでは (LESSと非常によく似た) Sass言語をサポートします (5.2)。そのため、bootstrap-sassは、LESSをSassへ変換し、必要なBootstrapファイルを現在のアプリケーションですべて利用できるようにします 

 

ほいよ。

いい感じになった。bootstrapすごい。

これで満足せずに探求を続けるデザイナーさんもすごい。

 

この辺りは、html&cssのお勉強やね。

 

5.1.3

パーシャル

Viewでの似たようなコードを一つにまとめる

パーシャルのファイル名の頭にはアンダースコア(アンダーバー)を付加します。

f:id:taiga-ishii:20180816210249p:plain

パーシャル完全に理解した。

Footerも追加。

 5.2 アセットパイプライン

*= require_tree .

*= require_self 

 なんですかこれは。

 

5.2.2 SCSS

 

5.3.1 Contactページを追加する

routesの書き方、progateと違っている

toは、=>で表現されるようになった?どこかで確認したい。

 

5.3.4 リンクのテスト

 

integrationテストを準備。

gemが足りなかったので以下を追加。

gem 'rails-controller-testing'

 

5.4 Userコントローラの作成

 

UserとUsers間違えると大変なことになる。

 

なんとか、レイアウトとルーティングが完成。