Rails_Tutorial_12
パスワードリセットを実装していく。
兎にも角にもコントローラ作成。
Rails_Turorial_10
10.2 認可
editアクションやupdateアクションでログインを要求するようになったため、ログインしていないユーザーだとこれらのテストが失敗するようになったためです。
このため、editアクションやupdateアクションをテストする前にログインしておく必要があります
10.2.2
fixtureに2人目を追加して、異なるユーザーでのアクセスを検証していく。
10.2.3 フレンドリーフォワーディング
この辺はUX的な話やね。
10.3
ユーザー一覧
10.4
dbにseedsを追加。
データが多くなったので、ページネーションする。
@users = User.paginate(page: params[:page])
ほいよ。
投稿系のサービスには、必須の機能ですな。
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
ユーザー登録機能を実装。
ほいよ、アチアチの登録成功画面ね。
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触ったことあるとわかりますね。
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での似たようなコードを一つにまとめる
パーシャルのファイル名の頭にはアンダースコア(アンダーバー)を付加します。
パーシャル完全に理解した。
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間違えると大変なことになる。
なんとか、レイアウトとルーティングが完成。