Domanda

Questo è probabilmente molto semplice, ma sto attraversando un periodo difficile capire che fuori.

Ho un parziale:

<% for room in @scrape %>
<tr id="page_<%= room.id %>">
    <th scope="row" class="<%= cycle("spec", "specalt") -%>"><%=h room.name %></td>
    <td class="<%=current_cycle%>"><%=h room.day1 %></td>
    <td class="<%=current_cycle%>"><%=h room.day2 %></td>
    <td class="<%=current_cycle%>"><%=h room.day3 %></td>
    <td class="<%=current_cycle%>"><%=h room.day4 %></td>
    <td class="<%=current_cycle%>"><%=h room.day5 %></td>
    <td class="<%=current_cycle%>"><%=h room.day6 %></td>
    <td class="<%=current_cycle%>"><%=h room.day7 %></td>
    <td class="<%=current_cycle%>"><%= select_tag("room[#{room.id}]", options_for_select(0..room.spots,0)) %></td>

</tr>
<% end %>

Da un risultato find_by_sql in questo modo:

    ID         Room     Day1     Day2   Day3    Day4    Day5    Day6    Day7
   18298   Blue Room   13.23    13.23   13.23   13.23   13.23   13.23   13.23

Ma io non so quanti giorni ci saranno, come faccio ad anello attraverso i risultati di colonna per i diversi giorni?

È stato utile?

Soluzione

Questo potrebbe essere fatto in un aiutante utilizzando blocco / rendimento, ma questo è al di fuori della portata della tua domanda. Prendo giusta alla domanda in questo modo all'interno del parziale.

<% room.attributes.each do |key, value| %>
  <% if key.to_s.include?("day") %>
    <td class="<%=current_cycle%>"><%=h value.to_s %></td>
  <% end %>
<% end %>

Aggiornamento: Ecco l'esempio di supporto. Se questo modello sta rivelando più di una volta nella vostra applicazione, penso che questo sia più gestibile e leggibile.

def attributes_for(model, match, &block)
  model.attributes.each do |key, value|
    if key.to_s.include?(match)
      # we pass key and value in this example. but you can
      # pass whatever you want to the block.
      concat(capture(key, value, &block))
    end
  end
end 

E questo è ora il tuo parziale:

<% attributes_for(room, "day") do |key, value| %>
  <td class="<%=current_cycle%>"><%=h value.to_s %></td>
<% end %>

Più totale linee di codice, ma meglio se avete intenzione di fare questo per tutta la vostra applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top