LoginSignup
0
0

More than 3 years have passed since last update.

Day18 リファクタリング

Last updated at Posted at 2020-03-15

ユーザー一覧パーシャル

ユーザー一覧機能では、下記のように管理者がみる非表示ユーザ含む一覧と、通常ユーザが見る公開ユーザのみの一覧画面が用意されている。
image.png
実際、一覧を表示するコード部分は二つとも全く一緒で、ビューファイルでは同じコードを書いており、上の画像のコードがビュー内で重複していた。そこで、下記のようにパーシャルを作り共有化することでコードの重複を解消した。

パーシャル
image.png
ビュー
スクリーンショット 2020-02-03 18.19.05.png
ビューでパーシャルを呼ぶ時に、変数をパーシャル側に渡している。ここでは全ユーザーが入った@users@incpriusersという変数をusersという変数にいれてそれがパーシャル側で使えるようになっている。

参考:https://qiita.com/takannporo/items/a8ff93109afc3bc3bab4
image.png

ユーザーアイコンのパーシャル

運営や非表示アカウント、目標達成済のユーザにはアイコンがそれぞれつくが、どこも同じ処理を行っている。ここもパーシャルで共通化することでコードの保守性を高めることができた。
パーシャル
image.png
ビュー
スクリーンショット 2020-02-03 20.39.13.png
ユーザー一覧と同じく、プロフィールユーザのオブジェクトをパーシャルに渡している。userがパーシャルでの変数。userpがビューで定義された変数。中身はどちらも一緒。

Likes Likedのヘルパー

送ったいいねと、送られたいいねの数を表示する処理はユーザー一覧やプロフィールページで使うため、ヘルパーメソッドで定義することにより簡略化させた。
ヘルパー
image.png
ビュー
image.png
image.png
ここではどちらも引数にはparamsのID、プロフィールページなのでプロフィールユーザのIDを送り、ヘルパーメソッドの方ではそれを元に、そのIDが送ったいいね(コラムuser_id)と、そのIDが送られたいいね(コラムpro_id)のカウントを検索し、戻り値でその値を返している。return は明記する必要はないが、わかりやすくするために明記した。

BMI登録のヘルパー

ヘルパー
image.png
ビュー
image.png
リファクタリング前はビューでヘルパーの処理を全て書いていたので、ごちゃごちゃになってしまっていたが、ヘルパーを利用することで見やすくなった。

graphのパーシャル

パーシャル
image.png
ビュー
image.png
こちらは表示の部分でもあり、さらに他のビューでも使われるのでパーシャルにした。
パーシャルで使う変数に、ビューの変数を変換できるのは便利すぎる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0