ぞえの技術めも

Ruby on Rails勉強中

【99日目】【1日20分のRailsチュートリアル】【第9章】テスト駆動開発でプロフィール編集処理を実装する

Ruby on Railsチュートリアル(第3版) 今日は「9.1.4 TDDで編集を成功させる」から。 9.1.4 TDDで編集を成功させる プロファイル画像の編集は、画像のアップロードをGravatarに任せてあるので、既に動作するようになっています。 Gravatarの方で画像の編集を…

【98日目】【1日20分のRailsチュートリアル】【第9章】ユーザー情報の編集に失敗したときの処理とテストを作成

Ruby on Railsチュートリアル(第3版) 今日は「9.1.2 編集の失敗」から。 9.1.2 編集の失敗 本項では、7.3のユーザー登録に失敗したときと似た方法で、編集に失敗した場合について扱っていきます。 まずUsersコントローラーにupdateアクションを追加する。 ap…

【97日目】【1日20分のRailsチュートリアル】【第9章】ユーザー編集ページを作成する

Ruby on Railsチュートリアル(第3版) 今日は「9.1.1 編集フォーム」のeditアクションを実装するところから。 9.1.1 編集フォーム Usersコントローラにeditアクションを追加して、それに対応するeditビューを実装する必要があります。 まずUsersコントローラ…

【96日目】【1日20分のRailsチュートリアル】【第9章】9章向けの作業ブランチ作る

Ruby on Railsチュートリアル(第3版) 今日は「第9章 ユーザーの更新・表示・削除」から。 第9章 ユーザーの更新・表示・削除 この章では、Usersリソース用のRESTアクション (表7.1) のうち、これまで未実装だったedit、update、index、destroyアクションを追…

【95日目】【1日20分のRailsチュートリアル】【第8章】演習の2.

Ruby on Railsチュートリアル(第3版) 今日は「8.6 演習」の2.から。 8.6 演習 railstutorial.jp 2. 8.4.6では、現在のアプリケーション設計では、リスト8.51の統合テストで仮想のremember_token属性にアクセスする手段がないことを説明しました。 実は、ass…

【94日目】【1日20分のRailsチュートリアル】【第8章】演習の1.

Ruby on Railsチュートリアル(第3版) 今日は「8.6 演習」から。 8.6 演習 railstutorial.jp なお、演習とチュートリアル本編の食い違いを避ける方法については、演習用のトピックブランチに追加したメモ (3.6) を参考にしてください。 演習用にブランチ切っ…

【93日目】【1日20分のRailsチュートリアル】【第8章】第8章のまとめ

Ruby on Railsチュートリアル(第3版) 今日は「8.5 最後に」から。 8.5 最後に 次の章に進む前に、変更をmasterブランチにマージしておきましょう。 テストを実行してエラーが出ないことを確認したらコミットしてmasterブランチにマージ。 $ bundle exec rake…

【92日目】【1日20分のRailsチュートリアル】【第8章】記憶ブランチをテストする

Ruby on Railsチュートリアル(第3版) 今日は「8.4.6 Rememberのテスト」の「記憶ブランチをテストする」から。 8.4.6 Rememberのテスト 記憶ブランチをテストする current_user内のある分岐部分については、これまでまったくテストが行われていないのです。 …

【91日目】【1日20分のRailsチュートリアル】【第8章】“Remember me”チェックボックスをテストする

Ruby on Railsチュートリアル(第3版) 今日は「8.4.6 Rememberのテスト」から。 8.4.6 Rememberのテスト しかしもっと重要な理由は、ユーザーを永続化するコードの中心部分が、実はまだまったくテストされていないからです。 そうだっけ…そうかもしれない。。…

【90日目】【1日20分のRailsチュートリアル】【第8章】“Remember me”チェックボックスを追加する

Ruby on Railsチュートリアル(第3版) 今日は「8.4.5 “Remember me” チェックボックス」から。 8.4.5 “Remember me” チェックボックス 今回の実装は、リスト8.2のログインフォームにチェックボックスを追加するところから始めます。 ログインフォームのビュー…

【89日目】【1日20分のRailsチュートリアル】【第8章】2つの目立たないバグに対するテストを作成する

Ruby on Railsチュートリアル(第3版) 今日は「8.4.4 2つの目立たないバグ」のテストを書くところから。 8.4.4 2つの目立たないバグ テスト駆動開発は、この種の地味なバグ修正にはうってつけです。そこで、2つのエラーをキャッチするテストを書くことにし…

【88日目】【1日20分のRailsチュートリアル】【第8章】2つの目立たないバグの原因を理解する

Ruby on Railsチュートリアル(第3版) 今日は「8.4.4 2つの目立たないバグ」から。 8.4.4 2つの目立たないバグ 実は小さなバグが2つ残っています。2つのバグは互いに強く関連しています。 へ~。まとめるとこんな感じらしい。 (1)同じサイトに複数のウィ…

【87日目】【1日20分のRailsチュートリアル】【第8章】ログアウトで保持しているユーザー情報を削除する

Ruby on Railsチュートリアル(第3版) 今日は「8.4.3 ユーザーを忘れる」から。 8.4.3 ユーザーを忘れる ユーザーがログアウトできるようにするために、ユーザーを記憶するためのメソッドと同様の方法で、ユーザーを忘れるためのメソッドを定義します。 どう…

【86日目】【1日20分のRailsチュートリアル】【第8章】ログイン状態の保持機能を追加する

Ruby on Railsチュートリアル(第3版) 今日は「8.4.2 ログイン状態の保持」のトークンが記憶ダイジェストと一致するか確認するから。 8.4.2 ログイン状態の保持 攻撃者が仮に両方のcookiesを奪い取ることに成功したとしても、本物のユーザーがログアウトする…

【85日目】【1日20分のRailsチュートリアル】【第8章】記憶トークンとユーザーIDをcookiesに保存する

Ruby on Railsチュートリアル(第3版) 今日は「8.4.2 ログイン状態の保持」から。 8.4.2 ログイン状態の保持 個別のcookiesは、ひとつのvalue (値) と、オプションのexpires (有効期限) からできています。 valueには記憶トークンの値を設定すればいいらしい…

【84日目】【1日20分のRailsチュートリアル】【第8章】セッション永続化のために記憶トークンを生成する

Ruby on Railsチュートリアル(第3版) 今日は「8.4 [このアカウント設定を保存する]」から。 8.4 [このアカウント設定を保存する] 本節では、ユーザーログインをデフォルトで保持するように変更し、 (中略) 前者はGitHubやBitbucketで、後者はFacebookやTwi…

【83日目】【1日20分のRailsチュートリアル】【第8章】ログアウト機能を追加する

Ruby on Railsチュートリアル(第3版) 今日は「8.3 ログアウト」から。 8.3 ログアウト ユーザーセッションを破棄するための有効なアクションをコントローラで作成するだけで済みます。 ユーザーセッションを破棄するlog_outメソッドをSessionヘルパーに追加…

【82日目】【1日20分のRailsチュートリアル】【第8章】ユーザー登録時にログインするようにする

Ruby on Railsチュートリアル(第3版) 今日は「8.2.5 ユーザー登録時にログイン」から。 8.2.5 ユーザー登録時にログイン 以上で認証システムが動作するようになりましたが、今のままでは、登録の終わったユーザーがデフォルトではログインしていないので、 …

【81日目】【1日20分のRailsチュートリアル】【第8章】レイアウト変更確認用テストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「8.2.4 レイアウトの変更をテストする」のテストを作成するところから。 8.2.4 レイアウトの変更をテストする ハッシュ化されていない生のパスワードも参照できると便利です。 (中略) この状況を切り抜けるため…

【80日目】【1日20分のRailsチュートリアル】【第8章】テスト用ユーザーを準備する

Ruby on Railsチュートリアル(第3版) 今日は「8.2.4 レイアウトの変更をテストする」から。 8.2.4 レイアウトの変更をテストする ログイン用のパスを開く セッション用パスに有効な情報をpostする ログイン用リンクが表示されなくなったことを確認する ログ…

【79日目】【1日20分のRailsチュートリアル】【第8章】ログイン状態によってレイアウトを変更する

Ruby on Railsチュートリアル(第3版) 今日は「8.2.3 レイアウトリンクを変更する」から。 8.2.3 レイアウトリンクを変更する ログイン機能の最初の具体的な応用として、ユーザーがログインしているときとそうでないときでレイアウトを変更してみましょう。 …

【78日目】【1日20分のRailsチュートリアル】【第8章】ログインしているユーザーのユーザー名を取得する

Ruby on Railsチュートリアル(第3版) 今日は「8.2.2 現在のユーザー」から。 8.2.2 現在のユーザー 今度はそのユーザーIDを別のページで取り出すことにしましょう。 そのためには、current_userメソッドを定義して、セッションIDに対応するユーザー名をデー…

【77日目】【1日20分のRailsチュートリアル】【第8章】一時セッションでユーザーをログインできるようにする

Ruby on Railsチュートリアル(第3版) 今日は「8.2 ログイン」から。 Ruby on Railsチュートリアル 第4版が公開されましたが、 途中で切り替えるわけにもいかないので第3版で進めます。 8.2 ログイン この節では、cookiesを使用する一時セッションでユーザー…

【76日目】【1日20分のRailsチュートリアル】【第8章】フラッシュメッセージのテストを作成する

Ruby on Railsチュートリアル(第3版) 今日は「8.1.5 フラッシュのテスト」から。 8.1.5 フラッシュのテスト アプリケーションのログインの挙動をテストするために、最初に統合テストを生成します。 生成します。 $ rails generate integration_test users_lo…

【75日目】【1日20分のRailsチュートリアル】【第8章】ログイン失敗時のエラーメッセージを表示する

Ruby on Railsチュートリアル(第3版) 今日は「8.1.4 フラッシュメッセージを表示する」から。 8.1.4 フラッシュメッセージを表示する ログインに失敗したときには代わりにフラッシュメッセージを表示することにします。最初のコードをリスト8.6に示します (…

【74日目】【1日20分のRailsチュートリアル】【第8章】ユーザーの検索と認証処理の実装

Ruby on Railsチュートリアル(第3版) 今日は「8.1.3 ユーザーの検索と認証」から。 8.1.3 ユーザーの検索と認証 最初に最小限のcreateアクションをSessionsコントローラで定義し、空のnewアクションとdestroyアクションもついでに作成しておきましょう。 作…

【73日目】【1日20分のRailsチュートリアル】【第8章】Sessionsコントローラとログインフォームの作成

Ruby on Railsチュートリアル(第3版) 今日は「8.1.1 Sessionsコントローラ」から。 8.1.1 Sessionsコントローラ 最初に、Sessionsコントローラとnewアクションを生成します。 作りました。 $ rails generate controller Sessions new newアクションを生成す…

【72日目】【1日20分のRailsチュートリアル】【第8章】第8章向けの作業ブランチを作成

Ruby on Railsチュートリアル(第3版) 今日から第8章! 第8章 ログイン、ログアウト 第7章でWebサイトでの新規ユーザー登録が行えるようになりましたので、今度はユーザーがログインやログアウトを行えるようにしましょう。 ユーザーのログイン/ログアウトは…

【71日目】【1日20分のRailsチュートリアル】【第7章】演習の4.(flash用のHTMLを読みやすくする)

Ruby on Railsチュートリアル(第3版) 今日は「7.7 演習」の4.から。 7.7 演習 4. 7.4.2で触れたように、flash用のHTML (リスト7.25) は読みにくいです。 より読みやすくしたリスト7.34のコードに対してテストスイートを実行し、こちらも正常に動作すること…

【70日目】【1日20分のRailsチュートリアル】【第7章】演習の3.(ユーザー登録後のflashに対するテストを追加)

Ruby on Railsチュートリアル(第3版) 今日は「7.7 演習」の3.から。 7.7 演習 7.4.2で実装したflashに対するテストを書いてみてください。どのくらい細かくテストするかはお任せします。 リスト7.33に最小限のテンプレートを用意しておいたので、参考にして…