紐付ける準備をしようここでは投稿とユーザーを紐付ける準備をします。どのユーザーが作成した投稿かわかるようにしましょう。postsテーブルにuser_idカラムを追加してください。データ型はintegerとしてください。user_idの値が必ず存在するようにバリデーションを設定してください。それでは投稿とユーザーを紐付けましょう。新規投稿に「どのユーザーが作成したのか」という情報を追加します。postsコントローラのcreateアクションを編集して、新規投稿とログインしているユーザーを紐付けてください。・views/posts/show.html.erb内のの下の行に以下のコードを貼り付けてください。・貼り付けたコードの中で、投稿に紐付いたユーザー名とユーザー画像を表示してください。※ユーザー画像はpublic/user_imagesフォルダに保存されるようになっています。※ユーザー名はそのユーザーの詳細ページへのリンクにしてください。ユーザー詳細ページに投稿を表示しようwhereメソッドある条件に合致する「複数の」データを取得するには、whereメソッドを用いる必要があります。whereメソッドでデータを取得した場合、それぞれのデータは配列に入っています。ユーザー詳細ページを編集しましょう。見本と同じように、ユーザー詳細ページでそのユーザーの投稿一覧が表示されるようにしてください。ヒント条件に合致する全てのデータを取得するためには、whereメソッドを使います。投稿の編集と削除を制限しようログインしているユーザーの投稿以外の投稿には編集ボタンと削除ボタンが表示されないようにしてください。次に、権限の無いユーザーが直接URLにアクセスして投稿の編集や削除を行えないようにしましょう。・投稿一覧ページにリダイレクトの2つを行ってください。いいね機能を作る準備ターミナルにコマンドを打ち込んでLikeモデルとlikesテーブルを作成してください。・integer型のuser_idカラム・integer型のpost_idカラムを持たせてください。マイグレーションファイルが作成されていることが確認できたら、データベースに変更を反映してください。user_idとpost_idの値が必ず存在するようにバリデーションを追加してください。likesコントローラを作成し、createアクションとdestroyアクションを追加してください。(アクションの中身はまだ空で構いません。authenticate_userメソッドを用いてアクションへのアクセスをログインしているユーザーのみに制限してください。「localhost:3000/likes/:post_id/create」というURLになるようにルーティングを追加してください。対応するアクションはlikesコントローラのcreateアクションとなるようにしてください。コントローラ名#アクション名となるようにしてください。次に、likesコントローラを作成し、アクションを追加しましょう。.../controllers/likes_controller.rbapp/controllersフォルダにlikes_controller.rbというファイルを作成してください。「いいね!」ボタンを作成します。likesコントローラの中身を完成させましょう。・likesコントローラのcreate、destroyアクションの中身を作って、投稿の「いいね!」とその取り消しができるようにしてください。・それぞれのアクションの最後で、いいねした投稿の詳細ページへリダイレクトしてください。Awesomeを読み込みましょう。・application.html.erbの内に以下のコードを追加してください。投稿詳細ページの見本のように、投稿内容の下に「いいね!」ボタンを作成しましょう。いいね数を表示しよう投稿詳細ページの見本と同じように、「いいね!」ボタンの隣に投稿に付いたいいねの数を表示してください。メソッドを使用します。投稿のid).count.../controllers/posts_controller.rbshowアクションで変数@likes_countを定義してください。whereメソッド、countメソッドを用いて、変数@likes_countにいいね数を代入してください。@post.id).countend../posts/show.html.erbハートアイコンを表示している部分の下で、変数@likes_countの値を表示してください。「いいね!」した投稿を表示しよう.../config/routes.rb「localhost:3000/users/:id/likes」というURLでアクセスできるルーティングを追加してください。対応するアクションはusersコントローラのlikesアクションとなるようにしてください。次に、アクションを追加しましょう。.../controllers/users_controller.rblikesアクションを追加してください。likesアクションに対応するビューファイルを用意しましょう。.../users/likes.html.erbapp/views/usersフォルダにlikes.html.erbというファイルを作成してください。作成したlikesアクションへのリンクを追加しましょう。.../users/show.html.erbユーザー詳細ページの指定箇所に、以下のコードを貼り付けてください。・idがparams[:id]のUserインスタンスをデータベースから取得し、変数@userに代入してください。・@userと紐付くLikeインスタンスの配列をデータベースから取得し、変数@likesに代入してください。.../users/likes.html.erb変数@likesに対して、each文を用いてください。・doの後ろの変数名はlikeとしてください。・最後にendを書くのを忘れないでください。../users/likes.html.erbeach文の中で、変数likeに紐付くPostインスタンスをデータベースから取得し、変数postに代入してください。パスワード暗号化の準備ここからはパスワードを暗号化していきます。暗号化のためのgemをインストールしましょう。installを実行してください。パスワードの暗号化と保存Userモデルにhas_secure_passwordを追加してください。・string型のpasswordカラムを削除するマイグレーションファイルを作成してください。ヒントヒントカラムを削除するためには、マイグレーションファイルに以下の記述を行います。:データ型ターミナルでコマンドを実行して、マイグレーションファイルの内容をデータベースに反映してください。has_secure_passwordメソッドを有効にすると、authenticateメソッドを使えるようになります。authenticateメソッドは渡された引数を暗号化し、password_digestの値と一致するかどうかを判定してくれます。有効になっているモデルのインスタンスで使うことが可能です。テーブルにレコードを挿入したいときはINSERTを使います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。おすすめの勉強方法や教材、受験申込み。