MENU
カテゴリー

if文のリファクタリング (クリーンコード Ruby on Rails)

  • URLをコピーしました!

if文についてプルリクエストのレビューで”こう書くともっと見やすいですよ”とコメントをいただいたことがあったので、ここにメモとして記載をしておく。こちらの記事に辿り着いた方にもすこしでも参考になれば幸いです。超初心者向けになると思います。

目次

実際のソースコード

レビューを受ける前のソースコード

if params[:country_id]
  @users = User.with_country(@country).order(id: :desc).page(params[:page]).per(100)
else
  @users = User.order(id: :desc).page(params[:page]).per(100)
end

このソースコードで表現したいこととしては、以下の通りです。

  • country_idを受けとった時はUserが所属している国で絞り込んだ状態で表示する。
  • それ以外は、国で絞り込まずすべてのUserを表示する。

レビューを受けた後のソースコード

scoped = User.order(id: :desc).page(params[:page]).per(100)
scoped = scoped.with_country(@country) if params[:country_id]
@users = scoped

レビューを受ける前は5行のコードとなっていたが、レビューいただいた内容をもとに修正を行った後は3行のコードで表現することができた。

if文の書き方は色々な書き方があるので、単純にif elseのように記述をしなくても表現したい仕様を満たすコードを書くことは充分可能です。

よかったらシェアしてね!
  • URLをコピーしました!
目次