前提・実現したいこと
8割同じ様なコードなのにリファクタリングができないのが惜しいです。
以下の様なアプリを作っていて、
「全投稿」では名前の通り全部の投稿を表示しています。
「指導者の投稿」では下記にある様にteacher/indexで、指導者だけの投稿を表示
「受講者の投稿」も下記の様にstudent/indexで、受講者だけの投稿を表示したいのですが、それぞれコードはほぼ同じなのにrecruitmentやstudent、teacherという文字があるために上手くリファクタリングできません。
そもそもこの状態はリファクタリングが出来るのか教えていただきたいです。
該当のソースコード
recruitment/index.html
<% recruitments.each do |recruitment| %> <div class="each-p"> <div class="p-upper"> <div class="p-user"> <p> <%= image_tag("user.png", :alt => "募集者の画像", :class => "user-pic") %> </p> <div class="user-name"> <p><%= recruitment.user.name %></p> </div> <div class="user-pref"> <p><%= recruitment.user.prefecture %></p> </div> </div> <div class="p-title"> <h2><%= truncate(recruitment.title, length: 20) %></h2> </div> </div> <div class="p-content"> <%= link_to recruitment_path(recruitment), class: "link" do %> <p> <%= truncate(recruitment.content, length: 35) %> </p> <% end %> </div> <div class="p-tag"> <span> <%= fa_icon 'clock' %> 希望日: <%= recruitment.hope_day %> </span> <span> <%= fa_icon 'tag' %> <%= recruitment.categories.name %> </span> </div> </div> <% end %>
teacher/index.html
<% teachers.each do |teacher| %> <% teacher.recruitments.each do |recruitment| %> <div class="each-p"> <div class="p-upper"> <div class="p-user"> <p> <%= image_tag("user.png", :alt => "募集者の画像", :class => "user-pic") %> </p> <div class="user-name"> <p><%= teacher.name %></p> </div> <div class="user-pref"> <p><%= teacher.prefecture %></p> </div> </div> <div class="p-title"> <h2><%= truncate(recruitment.title, length: 20) %></h2> </div> </div> <div class="p-content"> <%= link_to recruitment_path(recruitment), class: "link" do %> <p> <%= truncate(recruitment.content, length: 35) %> </p> <% end %> </div> <div class="p-tag"> <span> <%= fa_icon 'clock' %> 希望日: <%= recruitment.hope_day %> </span> <span> <%= fa_icon 'tag' %> <%= recruitment.categories.name %> </span> </div> </div> <% end %> <% end %>
student/index.html
<% students.each do |student| %> <% student.recruitments.each do |recruitment| %> <div class="each-p"> <div class="p-upper"> <div class="p-user"> <p> <%= image_tag("user.png", :alt => "募集者の画像", :class => "user-pic") %> </p> <div class="user-name"> <p><%= student.name %></p> </div> <div class="user-pref"> <p><%= student.prefecture %></p> </div> </div> <div class="p-title"> <h2><%= truncate(recruitment.title, length: 20) %></h2> </div> </div> <div class="p-content"> <%= link_to recruitment_path(recruitment), class: "link" do %> <p> <%= truncate(recruitment.content, length: 35) %> </p> <% end %> </div> <div class="p-tag"> <span> <%= fa_icon 'clock' %> 希望日: <%= recruitment.hope_day %> </span> <span> <%= fa_icon 'tag' %> <%= recruitment.categories.name %> </span> </div> </div> <% end %> <% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/07 13:06
2019/04/07 13:09 編集
2019/04/07 13:12
2019/04/07 13:20
2019/04/07 13:27
退会済みユーザー
2019/04/08 04:27