ユーザー一覧パーシャル
ユーザー一覧機能では、下記のように管理者がみる非表示ユーザ含む一覧と、通常ユーザが見る公開ユーザのみの一覧画面が用意されている。
実際、一覧を表示するコード部分は二つとも全く一緒で、ビューファイルでは同じコードを書いており、上の画像のコードがビュー内で重複していた。そこで、下記のようにパーシャルを作り共有化することでコードの重複を解消した。
パーシャル
ビュー
ビューでパーシャルを呼ぶ時に、変数をパーシャル側に渡している。ここでは全ユーザーが入った@usersと@incpriusersという変数をusersという変数にいれてそれがパーシャル側で使えるようになっている。
参考:https://qiita.com/takannporo/items/a8ff93109afc3bc3bab4
ユーザーアイコンのパーシャル
運営や非表示アカウント、目標達成済のユーザにはアイコンがそれぞれつくが、どこも同じ処理を行っている。ここもパーシャルで共通化することでコードの保守性を高めることができた。
パーシャル
ビュー
ユーザー一覧と同じく、プロフィールユーザのオブジェクトをパーシャルに渡している。userがパーシャルでの変数。userpがビューで定義された変数。中身はどちらも一緒。
Likes Likedのヘルパー
送ったいいねと、送られたいいねの数を表示する処理はユーザー一覧やプロフィールページで使うため、ヘルパーメソッドで定義することにより簡略化させた。
ヘルパー
ビュー
ここではどちらも引数にはparamsのID、プロフィールページなのでプロフィールユーザのIDを送り、ヘルパーメソッドの方ではそれを元に、そのIDが送ったいいね(コラムuser_id)と、そのIDが送られたいいね(コラムpro_id)のカウントを検索し、戻り値でその値を返している。return は明記する必要はないが、わかりやすくするために明記した。
BMI登録のヘルパー
ヘルパー
ビュー
リファクタリング前はビューでヘルパーの処理を全て書いていたので、ごちゃごちゃになってしまっていたが、ヘルパーを利用することで見やすくなった。
graphのパーシャル
パーシャル
ビュー
こちらは表示の部分でもあり、さらに他のビューでも使われるのでパーシャルにした。
パーシャルで使う変数に、ビューの変数を変換できるのは便利すぎる。