読者です 読者をやめる 読者になる 読者になる

ぞえの技術めも

Ruby on Rails勉強中

【139日目】【1日20分のRailsチュートリアル】【第10章】本番環境でのメール送信を試そうとして諦めた

Ruby on Railsチュートリアル(第3版) 今日は「10.3 本番環境でのメール」から。 10.3 本番環境でのメール アカウント有効化とパスワード復旧の最大の山場であるこのセクションでは、いよいよproduction (本番) 環境でアプリケーションからメールを送信します…

【138日目】【1日20分のRailsチュートリアル】【第10章】パスワード再設定のテストを作成する

Ruby on Railsチュートリアル(第3版) 今日は「10.2.5 パスワードの再設定をテストする」から。 10.2.5 パスワードの再設定をテストする まずはパスワード再設定のテストファイルを生成しましょう。 生成しました。 $ rails generate integration_test passwo…

【137日目】【1日20分のRailsチュートリアル】【第10章】パスワードリセットのupdateアクションを実装する

Ruby on Railsチュートリアル(第3版) 今日は「10.2.4 パスワードを再設定する」のupdateアクションを定義するところから。 10.2.4 パスワードを再設定する リスト10.51のeditアクションに対応するupdateアクションを定義するには、4通りの場合分けに対応する…

【136日目】【1日20分のRailsチュートリアル】【第10章】パスワード再設定フォームを実装する

Ruby on Railsチュートリアル(第3版) 今日は「10.2.4 パスワードを再設定する」から。 10.2.4 パスワードを再設定する フォームリンクが動作するためには、パスワード再設定のフォームが必要です。 この作業はユーザーのeditビューでユーザーを更新する (リ…

【135日目】【1日20分のRailsチュートリアル】【第10章】パスワード再設定用メイラーメソッドのテストを書く

Ruby on Railsチュートリアル(第3版) 今日は「10.2.3 PasswordResetsメイラーメソッド」のテストを書くところから。 10.2.3 PasswordResetsメイラーメソッド アカウント有効化メイラーメソッドのテスト (リスト10.18) の場合と同様、パスワード再設定用メイ…

【134日目】【1日20分のRailsチュートリアル】【第10章】パスワードリセットのメールプレビュー機能を実装する

Ruby on Railsチュートリアル(第3版) 今日は「10.2.3 PasswordResetsメイラーメソッド」から。 10.2.3 PasswordResetsメイラーメソッド 最初にユーザーメイラーにpassword_resetメソッドを作成し (リスト10.43)、続いてテキストメールのビューテンプレート (…

【133日目】【1日20分のRailsチュートリアル】【第10章】パスワード再設定画面でメールアドレスを送信したときの処理

Ruby on Railsチュートリアル(第3版) 今日は「10.2.2 PasswordResetsコントローラとフォーム」のフォームからメールアドレスを送信するところから。 10.2.2 PasswordResetsコントローラとフォーム 図10.12のフォームから送信を行なった後、メールアドレスを…

【132日目】【1日20分のRailsチュートリアル】【第10章】パスワード再設定フォームを追加する

Ruby on Railsチュートリアル(第3版) 今日は「10.2.2 PasswordResetsコントローラとフォーム」から。 10.2.2 PasswordResetsコントローラとフォーム ログインフォームを参考に、パスワード再設定フォームのビューを実装する。 app/views/password_resets/new…

【131日目】【1日20分のRailsチュートリアル】【第10章】ログイン画面にパスワード再設定画面へのリンクを追加する

Ruby on Railsチュートリアル(第3版) 今日は「10.2 パスワードの再設定」から。 10.2 パスワードの再設定 パスワード再設定の仕組みは、アカウント有効化と似ている部分が多く、10.1で学んだ手法の多くをここでも適用できます。 1passwordを導入してからパス…

【130日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化処理のリファクタリング

Ruby on Railsチュートリアル(第3版) 今日は「10.1.4 有効化のテストとリファクタリング」のリファクタリングするところから。 10.1.4 有効化のテストとリファクタリング 今日はリファクタリング。 activateメソッドを作成してユーザーの有効化属性を更新し…

【129日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化の統合テストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.4 有効化のテストとリファクタリング」から。 10.1.4 有効化のテストとリファクタリング この節では、アカウント有効化の統合テストを追加します。 正しい情報でユーザー登録を行った場合のテスト (リスト7…

【128日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化の動作を確認する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.3 アカウントを有効化する」のesitアクション書くところから。 10.1.3 アカウントを有効化する authenticated?がリスト10.24のようになったことで、やっとeditアクションを書く準備ができました。 ようやく…

【127日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化向けにauthenticated?メソッドを変更する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.3 アカウントを有効化する」から。 10.1.3 アカウントを有効化する リスト10.23のとおりにメールが生成できたら、今度はAccountActivationsコントローラのeditアクションを書いて、実際にユーザーを有効化…

【126日目】【1日20分のRailsチュートリアル】【第10章】メールプレビューのテストを作成する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」のメールプレビューのテストを作成するところから。 10.1.2 AccountActivationsメイラーメソッド 最後に、このメールプレビューのテストも作成して、プレビューをダ…

【125日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化メールのプレビューを確認する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」のUserメイラーのプレビューファイルを更新するところから。 10.1.2 AccountActivationsメイラーメソッド developmentサーバーを再起動してリスト10.14の設定を読み…

【124日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化メールのビューを作成する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」のメールにアカウント有効化リンクを追加するところから。 10.1.2 AccountActivationsメイラーメソッド ここでは挨拶文にユーザー名を含め、カスタムの有効化リンク…

【123日目】【1日20分のRailsチュートリアル】【第10章】UserMailerを生成してテンプレートをカスタマイズする

Ruby on Railsチュートリアル(第3版) 今日は「10.1.2 AccountActivationsメイラーメソッド」から。 10.1.2 AccountActivationsメイラーメソッド メイラーの構成はコントローラのアクションとよく似ており、メールのテンプレートをビューと同じ要領で定義でき…

【122日目】【1日20分のRailsチュートリアル】【第10章】アカウントの有効化トークンやダイジェストを作成する処理を追加する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.1 AccountActivationsリソース」のアカウントの有効化について考えるところから。 10.1.1 AccountActivationsリソース ユーザーが新しい登録を完了するためには必ずアカウントの有効化が必要になるのですか…

【121日目】【1日20分のRailsチュートリアル】【第10章】アカウント有効化のためにUserモデルに属性を追加する

Ruby on Railsチュートリアル(第3版) 今日は「10.1.1 AccountActivationsリソース」のresources行を追加するところから。 10.1.1 AccountActivationsリソース 有効化メールでは以下の形式のURLを使用します。 edit_account_activation_url(activation_token,…

【120日目】【1日20分のRailsチュートリアル】【第10章】AccountActivationsリソースを生成する

Ruby on Railsチュートリアル(第3版) 今日は「第10章 アカウント有効化とパスワード再設定」から。 今日から10章! 第10章 アカウント有効化とパスワード再設定 アカウントの有効化 (アクティベーション: 新規ユーザーのメールアドレスが有効であることを確…

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

Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」の4.から。 9.6 演習 4.リスト9.60のパーシャルを使用して、new.html.erbビューとedit.html.erbビューをリファクタリングし、コードの重複を取り除いてください。 このとき、リスト9.61のようにフォ…

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

Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」の3.から。 9.6 演習 3.Web経由でadmin属性を変更できないことを確認してください。 リスト9.59に示したように、PATCHリクエストを updateメソッドに直接発行するテストを作成してください。 テスト…

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

Ruby on Railsチュートリアル(第3版) 今日は「9.6 演習」の2.から。 9.6 演習 2.レイアウトにあるすべてのリンクに対して統合テストを書いてみましょう。 ログイン済みユーザーとそうでないユーザーのそれぞれに対して、正しい振る舞いを考えてください。 …

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

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

【115日目】【1日20分のRailsチュートリアル】【第9章】第9章の内容をコミット&本番環境で動かしてみる

Ruby on Railsチュートリアル(第3版) 今日は「9.5 最後に」から。 9.5 最後に メールアドレスを使ってアカウントを有効化する機能と (すなわち本当に有効なメールアドレスか検証するプロセスと)、ユーザーがパスワードを忘れてしまったときのためのパスワー…

【114日目】【1日20分のRailsチュートリアル】【第9章】ユーザー削除のテストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「9.4.3 ユーザー削除のテスト」から。 9.4.3 ユーザー削除のテスト ユーザー削除と同じくらい重要なことは、その振る舞いが期待されたかどうかを確かめる良いテストを書くことです。 そこで、まずはユーザー用fix…

【113日目】【1日20分のRailsチュートリアル】【第9章】destroyアクションを実装する

Ruby on Railsチュートリアル(第3版) 今日は「9.4.2 destroyアクション」から。 9.4.2 destroyアクション Usersリソースの最後の仕上げとして、destroyアクションへのリンクを追加しましょう。 まず各ユーザーにユーザー削除用のリンクを追加。 app/views/us…

【112日目】【1日20分のRailsチュートリアル】【第9章】Strong Parametersでadmin属性の変更をガードする

Ruby on Railsチュートリアル(第3版) 今日は「9.4.1 管理ユーザー」の「Strong Parameters、再び」から。 9.4.1 管理ユーザー Strong Parameters、再び 任意のWebリクエストの初期化ハッシュをオブジェクトに渡せるとなると、攻撃者は以下のようなPATCHリク…

【111日目】【1日20分のRailsチュートリアル】【第9章】管理ユーザーを識別するadmin属性を追加する

Ruby on Railsチュートリアル(第3版) 今日は「9.4 ユーザーを削除する」から。 9.4 ユーザーを削除する 削除を行うのに必要なdestroyアクションも実装します。しかしその前に、削除を実行できる権限を持つ管理 (admin) ユーザーのクラスを作成しましょう。 i…

【110日目】【1日20分のRailsチュートリアル】【第9章】パーシャルのリファクタリングを行う

Ruby on Railsチュートリアル(第3版) 今日は「9.3.5 パーシャルのリファクタリング」から。 9.3.5 パーシャルのリファクタリング 実はRailsにはコンパクトなビューを作成するための素晴らしいツールがいくつもあります。 この節ではそれらのツールを使用して…

【109日目】【1日20分のRailsチュートリアル】【第9章】ユーザーインデックスのテストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「9.3.4 ユーザーインデックスのテスト」から。 9.3.4 ユーザーインデックスのテスト 今回のテストでは、ログイン、indexページにアクセス、最初のページにユーザーがいることを確認、ページネーションのリンクが…

【108日目】【1日20分のRailsチュートリアル】【第9章】indexページでページネーションを動作させる

Ruby on Railsチュートリアル(第3版) 今日は「9.3.3 ページネーション」から。 9.3.3 ページネーション これで、最初のユーザーにも仲間ができました。しかし今度は逆に、1つのページに大量のユーザーが表示されてしまっています。 (中略) これを解決する…

【107日目】【1日20分のRailsチュートリアル】【第9章】サンプルユーザーを一気に追加する

Ruby on Railsチュートリアル(第3版) 今日は「9.3.2 サンプルのユーザー」から。 9.3.2 サンプルのユーザー この節では、一人ぼっちのユーザーに仲間を加えてあげることにします。 (中略) せっかくなのでRubyとRakeを使用してユーザーを一気に作成しましょ…

【106日目】【1日20分のRailsチュートリアル】【第9章】すべてのユーザーを表示するビューを作成する

Ruby on Railsチュートリアル(第3版) 今日は「9.3.1 ユーザーインデックス」のindexビューを追加するところから。 9.3.1 ユーザーインデックス 今度はすべてのユーザーを表示するために、全ユーザーが格納された変数を作成し、順々に表示するindexビューを実…

【105日目】【1日20分のRailsチュートリアル】【第9章】すべてのユーザーを表示する

Ruby on Railsチュートリアル(第3版) 今日は「9.3 すべてのユーザーを表示する」から。 9.3 すべてのユーザーを表示する この節では、いよいよ最後から2番目のユーザーアクションであるindexアクションを追加しましょう。このアクションは、すべてのユーザー…

【104日目】【1日20分のRailsチュートリアル】【第9章】フレンドリーフォワーディング機能を実装する

Ruby on Railsチュートリアル(第3版) 今日は「9.2.3 フレンドリーフォワーディング」の実装するところから。 9.2.3 フレンドリーフォワーディング 失敗するテストが書けたので、ようやくフレンドリーフォワーディングを実装する準備ができました。 ユーザー…

【103日目】【1日20分のRailsチュートリアル】【第9章】ユーザーフレンドリーな機能のテストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「9.2.2 正しいユーザーを要求する」のリファクタリングから。 9.2.2 正しいユーザーを要求する 最後に、リファクタリングではありますが、一般的な慣習に倣ってcurrent_user?という論理値を返すメソッドを実装し…

【102日目】【1日20分のRailsチュートリアル】【第9章】ユーザーが自分の情報だけを編集できるように実装を追加する

Ruby on Railsチュートリアル(第3版) 今日は「9.2.2 正しいユーザーを要求する」から。 9.2.2 正しいユーザーを要求する 当然のことですが、ログインを要求するだけでは十分ではありません。ユーザーが自分の情報だけを編集できるようにする必要があります。…

【101日目】【1日20分のRailsチュートリアル】【第9章】ユーザーにログインを要求する処理のテストを作成する

Ruby on Railsチュートリアル(第3版) 今日は「9.2.1 ユーザーにログインを要求する」のテストを修正するところから。 9.2.1 ユーザーにログインを要求する 原因は、editアクションやupdateアクションでログインを要求するようになったため、ログインしていな…

【100日目】【1日20分のRailsチュートリアル】【第9章】ユーザーにログインを要求する処理を追加

遂に100日目! Ruby on Railsチュートリアル(第3版) 今日は「9.2 認可」から。 9.2 認可 9.1のeditアクションとupdateアクションはすでに完全に動作していますが、セキュリティ上の大穴が1つ空いています。 どのユーザーでもあらゆるアクションにアクセスで…

【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のログインフォームにチェックボックスを追加するところから始めます。 ログインフォームのビュー…