前提・実現したいこと
railsのviewファイルの可読性が悪いので、フォームヘルパー化したい。
ここに質問の内容を詳しく書いてください。
viewファイルの内容をフォームヘルパー化しました。
しかし、["10", "2010135152"]など、配列が一緒に表示されてしまい上手く実装できません。
2点の問題があり、なかなか実装できない状況です。参考記事で構いません。アドバイスをお願いします。
reducation_timeは数値を時間に変換して表示させたいと考えています。
integer型かstring型を用いりたいです。
サイト⇒ http://13.112.211.254/projects
ヘルパー化したいソースコード
viewファイルのコード、汚い・・・
<% @projects.each do |project| %> <tr> <td><%= project.id %></td> <td><%= link_to project.name ,project_path(project) %></td> <td><%= project.status %></td> <td><%= project.number_of_month %>回</td> <td> <% if project.reducation_time >= 60 %> <%= project.reducation_time / 60 %>時間 <%= project.reducation_time % 60 %>分</td> <% else %> <%= project.reducation_time %>分 <% end %> </td> <td> <% if project.number_of_month * project.reducation_time * 12 >= 60 %> <%= project.number_of_month * project.reducation_time * 12 / 60 %>時間 <%= project.number_of_month * project.reducation_time * 12 % 60 %>分</td> <% else %> <%= project.number_of_month * project.reducation_time * 12%>分 <% end %> <% end %>
試したこと
helper.rbでまとめられるか試みる
module ProjectsHelper def reducation_name project_id = '' @projects.each do |project| project_id += project.id.to_s end return raw(project_id) end def reducation reducation_hour = '' reducation_min = '' @projects.each do |project| if project.reducation_time >= 60 reducation_hour += (project.reducation_time / 60).to_s reducation_min += (project.reducation_time % 60).to_s else reducation_min += (project.reducation_time).to_s end end binding.pry return raw(reducation_hour),raw(reducation_min) end end
viewファイルで試しに取り出す
<%= reducation %> <%= reducation_name %>
viewファイルの表示
["10", "2010135152"]
補足情報(FW/ツールのバージョンなど)
Rails 5.2.4.3
回答1件
あなたの回答
tips
プレビュー