Ruby onRails(PicTweet)マイページを実装しよう編

ユーザーのマイページ機能を実装します

ツイートにユーザー情報を追加する

カラムの追加の手順はnicknameカラムを追加するのと同様、ファイル名の命名規則にしたがって、自動でコードが記述されたマイグレーションを生成する

そしてapp/controllers/tweets_controller.rbでprivateの所に

.merge(user_id: current_user.id)を追記する

app/models/user.rbに

has_many :tweetsを追記する

 

app/models/tweet.rbに

belongs_to :userを追加する

 

マイページを表示する際には、usersコントローラーのshowアクションを動かせるようルーティングを設定しておく

config/routes.rbに

resourses :users, only: :showを追加する

 

マイページのビューを作成する

app/viiews/users内に、show.html.erbを作成し、以下のコードを書く

f:id:kikiMustang:20201123205552j:image

 

 

 

ログアウトボタン部分をプルダウンメニューに追加するよう、18行から25行を変更した

f:id:kikiMustang:20201121214345j:image

 

ターミナルでusersのコントローラーを作成する

その後app/cotrollers/users_controller.rbに@nicknameと@tweetsというインスタンス変数に代入する

 

投稿者こユーザー名の表示

tweetsテーブルのレコードである、「name」カラムの値が表示される部分を、アソシエーションを利用してツイート投稿者の「nickname」が表示されるように変更する

app/views/tweets/index.html.erbに

<a href="">

<span>投稿者</span><%= tweet.user.nickname %>
</a>

を追記する

そしてsequel Proでuser_idカラムに値を入れます

今回は1としました

app/views/tweets/index.html.erbの20行目のhref内に

/users/<%= tweet.user.id>を追記

そして以下を16-18行目に追記する

f:id:kikiMustang:20201122171341j:image

app/controllers/tweets_controller.rbの6行目を

@tweets = Tweet.incldes(:user)に書き換える

 

Nicknameを入力するためのフォーム部分を削除する

app/views/tweets/edit.html.erbの5行目も同様

app/cotroller/tweets_controller.erbの:nameも消す

tweetsテーブルからnameカラムを削除する