【Rails】Viewのリファクタリング2

リファクタリングとは

リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。

wiki~リファクタリング

なんのためにやるのか(小僧主観)

  • 他の人が見てもわかりやすくするため(見通しをよくする)
  • コードを再利用できるようにするため

Railにおける具体的なリファクタリング(View)

下記、Viewに同じような処理が複数あったとする。

<% if user_signed_in? %>
<% if current_user == @article.user %>
<%= link_to "編集", edit_article_path(@article) %>
<% end %>
<% end %>
<% if user_signed_in? %>
<% if current_user == @comment.user %>
<%= link_to "編集", edit_comment_path(@comment) %>
<% end %>
<% end %>

繰り返しているのは、ユーザーがサインインしているかどうかを確認すること、インスタンスに紐づいたユーザIDがログインしているユーザIDと同じかどうか確認すること、

こちらを、下記のようにリファクタリングする。

helper/application_helper.rb ← これを編集

def current_user_has?(instance)
user_signed_in? && current_user == instance.user
end
<% if current_user_has?(@book) %>
<%= link_to "編集", edit_article_path(@book) %>
<% end %>
<% if current_user_has?(@comment) %>
<%= link_to "編集", edit_comment_path(@comment) %>
<% end %>

なんか説明をみながらスッキリしたのでこちらもメモしておいた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です