ぞえの技術めも

Ruby on Rails勉強中

【169日目】【1日20分のRailsチュートリアル】【第12章】Relationshipモデルのバリデーションを追加する

Ruby on Railsチュートリアル(第3版) 今日は「12.1.3 Relationshipのバリデーション」から。 12.1.3 Relationshipのバリデーション 先に進む前に、Relationshipモデルの検証を追加して完全なものにしておきましょう。 Relationshipモデルのバリデーションの…

【168日目】【1日20分のRailsチュートリアル】【第12章】UserモデルとRelationshipモデルの関連付け

Ruby on Railsチュートリアル(第3版) 今日は「12.1.2 User/Relationshipの関連付け」から。 12.1.2 User/Relationshipの関連付け フォローしているユーザーとフォロワーを実装する前に、UserとRelationshipの関連付けを行います。 1人のユーザーにはhas_many…

【167日目】【1日20分のRailsチュートリアル】【第12章】relationshipsテーブルを作成する

Ruby on Railsチュートリアル(第3版) 今日は「12.1.1 データモデルの問題 (および解決策)」から。 12.1.1 データモデルの問題 (および解決策) ユーザーをフォローするデータモデル構成のための第一歩として、典型的な場合を検討してみましょう。 まず名前付…

【167日目】【1日20分のRailsチュートリアル】【第12章】第12章向けのブランチを作成する

Ruby on Railsチュートリアル(第3版) 今日は「第12章 ユーザーをフォローする」から。 第12章 ユーザーをフォローする この章では、他のユーザーをフォロー (およびフォロー解除) できるソーシャルレイヤーを追加し、各ユーザーのHomeページに、現在フォロー…

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

Ruby on Railsチュートリアル(第3版) 今日は「11.6 演習」の3.から。 11.6 演習 3.リスト11.69に示すテンプレートを参考に、11.4で実装した画像アップローダーをテストしてください。テストの準備として、まずはサンプル画像をfixtureディレクトリに追加し…

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

Ruby on Railsチュートリアル(第3版) 今日は「11.6 演習」の2.から。 11.6 演習 2.サイドバーにあるマイクロポストの合計投稿数をテストしてください。このとき、単数形 (micropost) と複数形 (microposts) が正しく表示されているかどうかもテストしてく…

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

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

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

Ruby on Railsチュートリアル(第3版) 今日は「11.5 最後に」から。 11.5 最後に Micropostsリソースの追加によって、サンプルアプリケーションはほぼ完成に近づきました。残すところは、ユーザーをお互いにフォローするソーシャルな仕組みのみとなります。 …

【162日目】【1日20分のRailsチュートリアル】【第11章】アップロード時に画像のリサイズを実施する

Ruby on Railsチュートリアル(第3版) 今日は「11.4.3 画像のリサイズ」から。 11.4.3 画像のリサイズ ファイルサイズに対するバリデーション (11.4.2) はうまくいきましたが、画像サイズ (縦横の長さ) に対する制限はないので、大きすぎる画像サイズがアップ…

【161日目】【1日20分のRailsチュートリアル】【第11章】画像のバリデーションをビューに組み込む

Ruby on Railsチュートリアル(第3版) 今日は「11.4.2 画像の検証」の画像のバリデーションをビューに組み込むところから。 11.4.2 画像の検証 リスト11.60やリスト11.61で定義した画像のバリデーションをビューに組み込むために、クライアント側に2つの処理…

【160日目】【1日20分のRailsチュートリアル】【第11章】画像のバリデーションを定義する

Ruby on Railsチュートリアル(第3版) 今日は「11.4.2 画像の検証」から。 11.4.2 画像の検証 11.4.1のアップローダーも悪くはありませんが、いくつかの目立つ欠点があります。 例えば、アップロードされた画像に対する制限がないため、もしユーザーが巨大な…

【159日目】【1日20分のRailsチュートリアル】【第11章】基本的な画像アップロード機能を実装する

Ruby on Railsチュートリアル(第3版) 今日は「11.4.1 基本的な画像アップロード」のHomeページ上にアップローダーを追加するところから。 11.4.1 基本的な画像アップロード 図 11.18のようにHomeページ上にアップローダーを追加するためには、マイクロポスト…

【158日目】【1日20分のRailsチュートリアル】【第11章】画像アップロードの準備

Ruby on Railsチュートリアル(第3版) 今日は「11.4 マイクロポストの画像投稿」から。 11.4 マイクロポストの画像投稿 この節では、応用編として画像付きマイクロポストを投稿できるようにしてみます。 ほへー。画像も扱うのか…! 投稿された画像ってどこに…

【157日目】【1日20分のRailsチュートリアル】【第11章】フィード画面におけるマイクロポストのテストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「11.3.5 フィード画面におけるマイクロポストのテスト」から。 11.3.5 フィード画面におけるマイクロポストのテスト まずはマイクロポスト用のfixtureに、別々のユーザーに紐付けられたマイクロポストを追加して…

【156日目】【1日20分のRailsチュートリアル】【第11章】マイクロポストを削除する

Ruby on Railsチュートリアル(第3版) 今日は「11.3.4 マイクロポストを削除する」から。 11.3.4 マイクロポストを削除する 最後の機能として、マイクロポストリソースにポストを削除する機能を追加します。これはユーザー削除と同様に(9.4.2)、"delete" リン…

【155日目】【1日20分のRailsチュートリアル】【第11章】お試しフィードを追加する

Ruby on Railsチュートリアル(第3版) 今日は「11.3.3 フィードの原型」から。 11.3.3 フィードの原型 マイクロポスト投稿フォームが動くようになりましたが、今の段階では投稿した内容をすぐに見ることができません。というのも、Homeページにまだマイクロポ…

【154日目】【1日20分のRailsチュートリアル】【第11章】マイクロポスト作成フォームを定義する

Ruby on Railsチュートリアル(第3版) 今日は「11.3.2 マイクロポストを作成する」のマイクロポスト作成フォームを定義するところから。 11.3.2 マイクロポストを作成する 次はマイクロポスト作成フォームを定義します (リスト11.37)。 これもファイルから作…

【153日目】【1日20分のRailsチュートリアル】【第11章】マイクロポスト作成フォームを構築するためにホーム画面を変更する

Ruby on Railsチュートリアル(第3版) 今日は「11.3.2 マイクロポストを作成する」から。 11.3.2 マイクロポストを作成する 主な違いは、別の micropost/new ページを使う代わりに、ホーム画面 (つまりルートパス) にフォームを置くという点です。図11.10のモ…

【152日目】【1日20分のRailsチュートリアル】【第11章】マイクロポストのアクセス制御を実装する

Ruby on Railsチュートリアル(第3版) 今日は「11.3 マイクロポストを操作する」から。 11.3 マイクロポストを操作する データモデリングとマイクロポスト表示テンプレートの両方が完成したので、次はWeb経由でそれらを作成するためのインターフェイスに取り…

【151日目】【1日20分のRailsチュートリアル】【第11章】プロフィール画面におけるマイクロポストのテストを追加する

Ruby on Railsチュートリアル(第3版) 今日は「11.2.3 プロフィール画面におけるマイクロポストのテスト」から。 11.2.3 プロフィール画面におけるマイクロポストのテスト この項では、プロフィール画面で表示されるマイクロポストに対して、統合テストを書い…

【150日目】【1日20分のRailsチュートリアル】【第11章】マイクロポストのサンプルデータを追加する

Ruby on Railsチュートリアル(第3版) 今日は「11.2.2 マイクロポストのサンプル」から。 11.2.2 マイクロポストのサンプル すべてのユーザーにマイクロポストを追加しようとすると時間が掛かり過ぎるので、takeメソッドを使って最初の6人だけに追加します。 …

【149日目】【1日20分のRailsチュートリアル】【第11章】マイクロポストのビューを追加する

Ruby on Railsチュートリアル(第3版) 今日は「11.2.1 マイクロポストの描画」から。 11.2.1 マイクロポストの描画 この項では、ユーザーのプロフィール画面 (show.html.erb) でそのユーザーのマイクロポストを表示させ、また、これまでに投稿した総数も表示…

【148日目】【1日20分のRailsチュートリアル】【第11章】ユーザーが破棄された場合、マイクロポストも破棄されるようにする

Ruby on Railsチュートリアル(第3版) 今日は「11.1.4 マイクロポストを改良する」の「Dependent: destroy」から。 11.1.4 マイクロポストを改良する Dependent: destroy サイト管理者はユーザーを破棄する権限を持ちます。ユーザーが破棄された場合、ユーザ…

【147日目】【1日20分のRailsチュートリアル】【第11章】マイクロポストを特定の順序で取得できるようにする

Ruby on Railsチュートリアル(第3版) 今日は「11.1.4 マイクロポストを改良する」から。 11.1.4 マイクロポストを改良する 具体的には、ユーザーのマイクロポストを特定の順序で取得できるようにしたり、マイクロポストをユーザーに依存させて、ユーザーが削…

【146日目】【1日20分のRailsチュートリアル】【第11章】UserモデルとMicropostモデルの関連付け

Ruby on Railsチュートリアル(第3版) 今日は「11.1.3 User/Micropostの関連付け」から。 11.1.3 User/Micropostの関連付け それぞれのマイクロポストは1人のユーザーと関連付けられ、それぞれのユーザーは (潜在的に) 複数のマイクロポストと関連付けられま…

【145日目】【1日20分のRailsチュートリアル】【第11章】Micropostモデルのバリデーション

Ruby on Railsチュートリアル(第3版) 今日は「11.1.2 Micropostのバリデーション」から。 11.1.2 Micropostのバリデーション Micropostの初期テストはUserモデルの初期テスト (リスト6.7) と似ています。 まずはMicropostモデル単体のテストを作成する。 tes…

【144日目】【1日20分のRailsチュートリアル】【第11章】Micropostモデルを生成する

Ruby on Railsチュートリアル(第3版) 今日は「第11章 ユーザーのマイクロポスト」から。ようやく第11章…! 第11章 ユーザーのマイクロポスト 全ての準備が整った今、ユーザーが短いメッセージを投稿できるようにするためのリソース「マイクロポスト」を追加…

【143日目】【1日20分のRailsチュートリアル】【第10章】演習の3.と期限切れの比較の証明

Ruby on Railsチュートリアル(第3版) 今日は「10.5 演習」の3.から。 10.5 演習 3.リスト10.42では、activateメソッドとcreate_reset_digestメソッドの両方でupdate_attributeを呼び出しており、それぞれのアクセスによってデータベーストランザクションが…

【142日目】【1日20分のRailsチュートリアル】【第10章】演習の2.の/users/:idの統合テストを作成する

Ruby on Railsチュートリアル(第3版) 今日は「10.5 演習」の2.の/users/:idの統合テストを作成するところから。 10.5 演習 応用問題: /usersと/users/:id両方の統合テストを作成してください。 昨日の続き。/users/:idの統合テスト作成について考えます。 と…

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

Ruby on Railsチュートリアル(第3版) 今日は「10.5 演習」の2.から。 10.5 演習 2.現在は、/usersのユーザーインデックスページを開くとすべてのユーザーが表示され、/users/:idのようにIDを指定すると個別のユーザーを表示できます。 しかし考えてみれば…

【140日目】【1日20分のRailsチュートリアル】【第10章】10章のまとめと演習の1.

Ruby on Railsチュートリアル(第3版) 前回からだいぶ間が空いてしまったけど復活。 今日は「10.4 最後に」から。 10.4 最後に アカウント有効化機能とパスワード再設定機能が追加されたことで、ついにサンプルアプリケーションの登録、ログイン、ログアウト…

【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,…