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を作成し、以下のコードを書く
ログアウトボタン部分をプルダウンメニューに追加するよう、18行から25行を変更した
ターミナルで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行目に追記する
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カラムを削除する