Ruby on Railsチュートリアル(第3版) 今日は「10.1.4 有効化のテストとリファクタリング」から。 10.1.4 有効化のテストとリファクタリング この節では、アカウント有効化の統合テストを追加します。 正しい情報でユーザー登録を行った場合のテスト (リスト7…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.3 アカウントを有効化する」のesitアクション書くところから。 10.1.3 アカウントを有効化する authenticated?がリスト10.24のようになったことで、やっとeditアクションを書く準備ができました。 ようやく…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.3 アカウントを有効化する」から。 10.1.3 アカウントを有効化する リスト10.23のとおりにメールが生成できたら、今度はAccountActivationsコントローラのeditアクションを書いて、実際にユーザーを有効化…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」のメールプレビューのテストを作成するところから。 10.1.2 AccountActivationsメイラーメソッド 最後に、このメールプレビューのテストも作成して、プレビューをダ…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」のUserメイラーのプレビューファイルを更新するところから。 10.1.2 AccountActivationsメイラーメソッド developmentサーバーを再起動してリスト10.14の設定を読み…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」のメールにアカウント有効化リンクを追加するところから。 10.1.2 AccountActivationsメイラーメソッド ここでは挨拶文にユーザー名を含め、カスタムの有効化リンク…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」から。 10.1.2 AccountActivationsメイラーメソッド メイラーの構成はコントローラのアクションとよく似ており、メールのテンプレートをビューと同じ要領で定義でき…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.1 AccountActivationsリソース」のアカウントの有効化について考えるところから。 10.1.1 AccountActivationsリソース ユーザーが新しい登録を完了するためには必ずアカウントの有効化が必要になるのですか…
Ruby on Railsチュートリアル(第3版) 今日は「10.1.1 AccountActivationsリソース」のresources行を追加するところから。 10.1.1 AccountActivationsリソース 有効化メールでは以下の形式のURLを使用します。 edit_account_activation_url(activation_token,…
Ruby on Railsチュートリアル(第3版) 今日は「第10章 アカウント有効化とパスワード再設定」から。 今日から10章! 第10章 アカウント有効化とパスワード再設定 アカウントの有効化 (アクティベーション: 新規ユーザーのメールアドレスが有効であることを確…
Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」の4.から。 9.6 演習 4.リスト9.60のパーシャルを使用して、new.html.erbビューとedit.html.erbビューをリファクタリングし、コードの重複を取り除いてください。 このとき、リスト9.61のようにフォ…
Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」の3.から。 9.6 演習 3.Web経由でadmin属性を変更できないことを確認してください。 リスト9.59に示したように、PATCHリクエストを updateメソッドに直接発行するテストを作成してください。 テスト…
Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」の2.から。 9.6 演習 2.レイアウトにあるすべてのリンクに対して統合テストを書いてみましょう。 ログイン済みユーザーとそうでないユーザーのそれぞれに対して、正しい振る舞いを考えてください。 …
Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」から。 9.6 演習 なお、演習とチュートリアル本編の食い違いを避ける方法については、演習用のトピックブランチに追加したメモ (3.6) を参考にしてください。 まず演習用にブランチ分けます。 $ git c…
Ruby on Railsチュートリアル(第3版) 今日は「9.5 最後に」から。 9.5 最後に メールアドレスを使ってアカウントを有効化する機能と (すなわち本当に有効なメールアドレスか検証するプロセスと)、ユーザーがパスワードを忘れてしまったときのためのパスワー…
Ruby on Railsチュートリアル(第3版) 今日は「9.4.3 ユーザー削除のテスト」から。 9.4.3 ユーザー削除のテスト ユーザー削除と同じくらい重要なことは、その振る舞いが期待されたかどうかを確かめる良いテストを書くことです。 そこで、まずはユーザー用fix…
Ruby on Railsチュートリアル(第3版) 今日は「9.4.2 destroyアクション」から。 9.4.2 destroyアクション Usersリソースの最後の仕上げとして、destroyアクションへのリンクを追加しましょう。 まず各ユーザーにユーザー削除用のリンクを追加。 app/views/us…
Ruby on Railsチュートリアル(第3版) 今日は「9.4.1 管理ユーザー」の「Strong Parameters、再び」から。 9.4.1 管理ユーザー Strong Parameters、再び 任意のWebリクエストの初期化ハッシュをオブジェクトに渡せるとなると、攻撃者は以下のようなPATCHリク…
Ruby on Railsチュートリアル(第3版) 今日は「9.4 ユーザーを削除する」から。 9.4 ユーザーを削除する 削除を行うのに必要なdestroyアクションも実装します。しかしその前に、削除を実行できる権限を持つ管理 (admin) ユーザーのクラスを作成しましょう。 i…
Ruby on Railsチュートリアル(第3版) 今日は「9.3.5 パーシャルのリファクタリング」から。 9.3.5 パーシャルのリファクタリング 実はRailsにはコンパクトなビューを作成するための素晴らしいツールがいくつもあります。 この節ではそれらのツールを使用して…
Ruby on Railsチュートリアル(第3版) 今日は「9.3.4 ユーザーインデックスのテスト」から。 9.3.4 ユーザーインデックスのテスト 今回のテストでは、ログイン、indexページにアクセス、最初のページにユーザーがいることを確認、ページネーションのリンクが…
Ruby on Railsチュートリアル(第3版) 今日は「9.3.3 ページネーション」から。 9.3.3 ページネーション これで、最初のユーザーにも仲間ができました。しかし今度は逆に、1つのページに大量のユーザーが表示されてしまっています。 (中略) これを解決する…
Ruby on Railsチュートリアル(第3版) 今日は「9.3.2 サンプルのユーザー」から。 9.3.2 サンプルのユーザー この節では、一人ぼっちのユーザーに仲間を加えてあげることにします。 (中略) せっかくなのでRubyとRakeを使用してユーザーを一気に作成しましょ…
Ruby on Railsチュートリアル(第3版) 今日は「9.3.1 ユーザーインデックス」のindexビューを追加するところから。 9.3.1 ユーザーインデックス 今度はすべてのユーザーを表示するために、全ユーザーが格納された変数を作成し、順々に表示するindexビューを実…
Ruby on Railsチュートリアル(第3版) 今日は「9.3 すべてのユーザーを表示する」から。 9.3 すべてのユーザーを表示する この節では、いよいよ最後から2番目のユーザーアクションであるindexアクションを追加しましょう。このアクションは、すべてのユーザー…
Ruby on Railsチュートリアル(第3版) 今日は「9.2.3 フレンドリーフォワーディング」の実装するところから。 9.2.3 フレンドリーフォワーディング 失敗するテストが書けたので、ようやくフレンドリーフォワーディングを実装する準備ができました。 ユーザー…
Ruby on Railsチュートリアル(第3版) 今日は「9.2.2 正しいユーザーを要求する」のリファクタリングから。 9.2.2 正しいユーザーを要求する 最後に、リファクタリングではありますが、一般的な慣習に倣ってcurrent_user?という論理値を返すメソッドを実装し…
Ruby on Railsチュートリアル(第3版) 今日は「9.2.2 正しいユーザーを要求する」から。 9.2.2 正しいユーザーを要求する 当然のことですが、ログインを要求するだけでは十分ではありません。ユーザーが自分の情報だけを編集できるようにする必要があります。…
Ruby on Railsチュートリアル(第3版) 今日は「9.2.1 ユーザーにログインを要求する」のテストを修正するところから。 9.2.1 ユーザーにログインを要求する 原因は、editアクションやupdateアクションでログインを要求するようになったため、ログインしていな…
遂に100日目! Ruby on Railsチュートリアル(第3版) 今日は「9.2 認可」から。 9.2 認可 9.1のeditアクションとupdateアクションはすでに完全に動作していますが、セキュリティ上の大穴が1つ空いています。 どのユーザーでもあらゆるアクションにアクセスで…