0

Day モデル内のすべての列を繰り返し処理して、単純化された書式設定スキームを利用する最善の方法がわかりません。

index.html.erb

<% @day.each do |u| %>
    <li id="date"><%= clean_date(u.date) %></li>
    <li><b>Morning</b>: <%= u.morning %></li>
    <% unless u.morning_notes.blank? %><li><b>Morning Notes</b>: <%= u.morning_notes %><% end %></li>
    <li><b>Afternoon</b>: <%= u.afternoon %></li>
    <% unless u.afternoon_notes.blank? %><li><b>Afternoon Notes</b>: <%= u.afternoon_notes %><% end %></li>
    <li><b>Evening</b>: <%= u.evening %></li>
    <% unless u.evening_notes.blank? %><li><b>Evening Notes</b>: <%= u.evening_notes %><% end %></li>
    <li><b>Night</b>: <%= u.night %></li>
    <% unless u.night_notes.blank? %><li><b>Night Notes</b>: <%= u.night_notes %><% end %></li>
<% end %>

理想的には、次のようになります。

<% @day.each do |u| %>
    <li id="date"><%= clean_date(u.date) %></li>
    <li><b>TimeOfDay</b>: <%= u.TimeOfDay %></li>
    <% unless u.TimeOfDay_notes.blank? %>
      <li><b>TimeOfDay Notes</b>: <%= u.TimeOfDay_notes %>
    <% end %></li>
<% end %>

TimeOfDay は、朝、午後、夕方、夜を繰り返します。

4

1 に答える 1

0

多分このようなもの:

<% @day.each do |u| %>
<li id="date"><%= clean_date(u.date) %></li>
<% ["morning", "afternoon", "evening", "night"].each do |t| %>
    <li><b><%= t.capitalize %></b>: <%= u.send(t) %></li>
    <% notes = u.send("#{t}_notes") %>
    <% unless notes.blank? %>
        <li><b><%= t.capitalize %> Notes</b>: <%= notes %></li>
    <% end %>
<% end %>
于 2013-03-23T17:17:22.483 に答える