テックアカデミーメンタリング12回目:ViewでのデバッグとUserの編集ページ

テックアカデミー第12回目メンタリング~Viewでのデバッグ、ユーザー編集ページでの値の渡し方~ TechAcademy

テックアカデミーWebアプリケーションコース(8週間プラン)第12回目となるメンタリング。今回はViewでのデバッグとUserの編集ページについての内容です。

 

前回までのメンタリング

 

【第12回】メンタリング内容

第12回目となるメンタリングの内容は、

  • Viewでのデバッグ方法
  • ユーザーの編集ページで初期値が渡す方法

について書いています。

 

具体的には、この問題を解決する前まで、学部は選択されている状態で表示されていたのですが、学部を選ばないと学科を選べない仕様にしてあることもあり、学科が選択されていない状態で表示されていました。

 

問題を解決した後はユーザーの編集ページに行くと、下記のように上手く表示されるようになりました!

問題の箇所

 

なので今回は、どのように解決したのかについて書いていきます。

 

Viewでのデバッグ

まずどのような挙動か確認するために、問題が起きている/views/users/edit.html.erbファイルの後ろの行に、

<%= debug @user %>
@userはデバッグで中身を確認したい変数になります。

を記述し、previewで確認することができます。

 

selectedを使い@user.subject_idを渡す

デバッグで確認したことで、学科の初期値が渡せていないことが分かったので、以下のように修正しました。

 

/views/users/edit.html.erb

修正前

<div class="form-group">
<%= f.label :subject_id, '学科' %>
<span id='subject_result'>
<%= collection_select :user, :subject_id, Subject.all, :id, :name, {:prompt => "選択してください"}, class: 'form-control' %>
</span>
</div>

修正後

<div class="form-group">
<%= f.label :subject_id, '学科' %>
<span id='subject_result'>
<%= collection_select :user, :subject_id, Subject.where(id: @user.subject_id), :id, :name, {selected: @user.subject_id, :prompt => "選択してください"}, class: 'form-control' %>
</span>
</div>

 

Subject.where(id: @user.subject_id)selected: @user.subject_idを追加することによってユーザーの編集ページでも学部、学科の初期値が入力された状態になりました!

 

テックアカデミーメンタリング12回目【まとめ】

今回でテックアカデミーのメンタリングも早12回目。残すところあと3回となりました。

 

後は画像アップロード機能だけ!

 

 

次回はこちら

テックアカデミーメンタリング13回目:画像アップロード機能の実装
テックアカデミーWebアプリケーションコース(8週間プラン)第13回目のメンタリング内容について書いています。具体的には、CarrierWave、rmagickのgemを使い、ローカルとheroku上でのアップローダーの実装を行いました。

コメント

  1. nbarrios より:

    どうもありがとうございました! tony clifton taxi