Ruby on Railsチュートリアル(第3版) 今日は「9.1.4 TDDで編集を成功させる」から。 9.1.4 TDDで編集を成功させる プロファイル画像の編集は、画像のアップロードをGravatarに任せてあるので、既に動作するようになっています。 Gravatarの方で画像の編集を…
Ruby on Railsチュートリアル(第3版) 今日は「9.1.2 編集の失敗」から。 9.1.2 編集の失敗 本項では、7.3のユーザー登録に失敗したときと似た方法で、編集に失敗した場合について扱っていきます。 まずUsersコントローラーにupdateアクションを追加する。 ap…
Ruby on Railsチュートリアル(第3版) 今日は「9.1.1 編集フォーム」のeditアクションを実装するところから。 9.1.1 編集フォーム Usersコントローラにeditアクションを追加して、それに対応するeditビューを実装する必要があります。 まずUsersコントローラ…
Ruby on Railsチュートリアル(第3版) 今日は「第9章 ユーザーの更新・表示・削除」から。 第9章 ユーザーの更新・表示・削除 この章では、Usersリソース用のRESTアクション (表7.1) のうち、これまで未実装だったedit、update、index、destroyアクションを追…
Ruby on Railsチュートリアル(第3版) 今日は「8.6 演習」の2.から。 8.6 演習 railstutorial.jp 2. 8.4.6では、現在のアプリケーション設計では、リスト8.51の統合テストで仮想のremember_token属性にアクセスする手段がないことを説明しました。 実は、ass…
Ruby on Railsチュートリアル(第3版) 今日は「8.6 演習」から。 8.6 演習 railstutorial.jp なお、演習とチュートリアル本編の食い違いを避ける方法については、演習用のトピックブランチに追加したメモ (3.6) を参考にしてください。 演習用にブランチ切っ…
Ruby on Railsチュートリアル(第3版) 今日は「8.5 最後に」から。 8.5 最後に 次の章に進む前に、変更をmasterブランチにマージしておきましょう。 テストを実行してエラーが出ないことを確認したらコミットしてmasterブランチにマージ。 $ bundle exec rake…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.6 Rememberのテスト」の「記憶ブランチをテストする」から。 8.4.6 Rememberのテスト 記憶ブランチをテストする current_user内のある分岐部分については、これまでまったくテストが行われていないのです。 …
Ruby on Railsチュートリアル(第3版) 今日は「8.4.6 Rememberのテスト」から。 8.4.6 Rememberのテスト しかしもっと重要な理由は、ユーザーを永続化するコードの中心部分が、実はまだまったくテストされていないからです。 そうだっけ…そうかもしれない。。…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.5 “Remember me” チェックボックス」から。 8.4.5 “Remember me” チェックボックス 今回の実装は、リスト8.2のログインフォームにチェックボックスを追加するところから始めます。 ログインフォームのビュー…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.4 2つの目立たないバグ」のテストを書くところから。 8.4.4 2つの目立たないバグ テスト駆動開発は、この種の地味なバグ修正にはうってつけです。そこで、2つのエラーをキャッチするテストを書くことにし…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.4 2つの目立たないバグ」から。 8.4.4 2つの目立たないバグ 実は小さなバグが2つ残っています。2つのバグは互いに強く関連しています。 へ~。まとめるとこんな感じらしい。 (1)同じサイトに複数のウィ…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.3 ユーザーを忘れる」から。 8.4.3 ユーザーを忘れる ユーザーがログアウトできるようにするために、ユーザーを記憶するためのメソッドと同様の方法で、ユーザーを忘れるためのメソッドを定義します。 どう…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.2 ログイン状態の保持」のトークンが記憶ダイジェストと一致するか確認するから。 8.4.2 ログイン状態の保持 攻撃者が仮に両方のcookiesを奪い取ることに成功したとしても、本物のユーザーがログアウトする…
Ruby on Railsチュートリアル(第3版) 今日は「8.4.2 ログイン状態の保持」から。 8.4.2 ログイン状態の保持 個別のcookiesは、ひとつのvalue (値) と、オプションのexpires (有効期限) からできています。 valueには記憶トークンの値を設定すればいいらしい…
Ruby on Railsチュートリアル(第3版) 今日は「8.4 [このアカウント設定を保存する]」から。 8.4 [このアカウント設定を保存する] 本節では、ユーザーログインをデフォルトで保持するように変更し、 (中略) 前者はGitHubやBitbucketで、後者はFacebookやTwi…
Ruby on Railsチュートリアル(第3版) 今日は「8.3 ログアウト」から。 8.3 ログアウト ユーザーセッションを破棄するための有効なアクションをコントローラで作成するだけで済みます。 ユーザーセッションを破棄するlog_outメソッドをSessionヘルパーに追加…
Ruby on Railsチュートリアル(第3版) 今日は「8.2.5 ユーザー登録時にログイン」から。 8.2.5 ユーザー登録時にログイン 以上で認証システムが動作するようになりましたが、今のままでは、登録の終わったユーザーがデフォルトではログインしていないので、 …
Ruby on Railsチュートリアル(第3版) 今日は「8.2.4 レイアウトの変更をテストする」のテストを作成するところから。 8.2.4 レイアウトの変更をテストする ハッシュ化されていない生のパスワードも参照できると便利です。 (中略) この状況を切り抜けるため…
Ruby on Railsチュートリアル(第3版) 今日は「8.2.4 レイアウトの変更をテストする」から。 8.2.4 レイアウトの変更をテストする ログイン用のパスを開く セッション用パスに有効な情報をpostする ログイン用リンクが表示されなくなったことを確認する ログ…
Ruby on Railsチュートリアル(第3版) 今日は「8.2.3 レイアウトリンクを変更する」から。 8.2.3 レイアウトリンクを変更する ログイン機能の最初の具体的な応用として、ユーザーがログインしているときとそうでないときでレイアウトを変更してみましょう。 …
Ruby on Railsチュートリアル(第3版) 今日は「8.2.2 現在のユーザー」から。 8.2.2 現在のユーザー 今度はそのユーザーIDを別のページで取り出すことにしましょう。 そのためには、current_userメソッドを定義して、セッションIDに対応するユーザー名をデー…
Ruby on Railsチュートリアル(第3版) 今日は「8.2 ログイン」から。 Ruby on Railsチュートリアル 第4版が公開されましたが、 途中で切り替えるわけにもいかないので第3版で進めます。 8.2 ログイン この節では、cookiesを使用する一時セッションでユーザー…
Ruby on Railsチュートリアル(第3版) 今日は「8.1.5 フラッシュのテスト」から。 8.1.5 フラッシュのテスト アプリケーションのログインの挙動をテストするために、最初に統合テストを生成します。 生成します。 $ rails generate integration_test users_lo…
Ruby on Railsチュートリアル(第3版) 今日は「8.1.4 フラッシュメッセージを表示する」から。 8.1.4 フラッシュメッセージを表示する ログインに失敗したときには代わりにフラッシュメッセージを表示することにします。最初のコードをリスト8.6に示します (…
Ruby on Railsチュートリアル(第3版) 今日は「8.1.3 ユーザーの検索と認証」から。 8.1.3 ユーザーの検索と認証 最初に最小限のcreateアクションをSessionsコントローラで定義し、空のnewアクションとdestroyアクションもついでに作成しておきましょう。 作…
Ruby on Railsチュートリアル(第3版) 今日は「8.1.1 Sessionsコントローラ」から。 8.1.1 Sessionsコントローラ 最初に、Sessionsコントローラとnewアクションを生成します。 作りました。 $ rails generate controller Sessions new newアクションを生成す…
Ruby on Railsチュートリアル(第3版) 今日から第8章! 第8章 ログイン、ログアウト 第7章でWebサイトでの新規ユーザー登録が行えるようになりましたので、今度はユーザーがログインやログアウトを行えるようにしましょう。 ユーザーのログイン/ログアウトは…
Ruby on Railsチュートリアル(第3版) 今日は「7.7 演習」の4.から。 7.7 演習 4. 7.4.2で触れたように、flash用のHTML (リスト7.25) は読みにくいです。 より読みやすくしたリスト7.34のコードに対してテストスイートを実行し、こちらも正常に動作すること…
Ruby on Railsチュートリアル(第3版) 今日は「7.7 演習」の3.から。 7.7 演習 7.4.2で実装したflashに対するテストを書いてみてください。どのくらい細かくテストするかはお任せします。 リスト7.33に最小限のテンプレートを用意しておいたので、参考にして…