2012-11-03 77 views
1

在這裏,我想設置一個每週計劃器,我將在稍後插入計劃。我的列按星期排序(星期一,星期二...) 現在,我希望按行排序。按列和列排序表Rails

但是,我的代碼如下。對於每一列,它循環的次數與我時隙中的項目數相同。

如果你能給我一些指導,我應該如何解決這個問題,以便每個時隙在整個表格中只出現一次,我將不勝感激。

的代碼

<table class="Time Table"> 
    <tr> 
    <th><%= "Time" %></th> 
    <th><%= "Monday" %></th> 
    <th><%= "Tuesday" %></th> 
    <th><%= "Wednesday" %></th> 
    <th><%= "Thursday" %></th> 
    <th><%= "Friday" %></th> 
    <th><%= "Saturday" %></th> 

</tr> 
    <% @time_slots.each do |time_slot| %> 
    <tr> 
     <td></td> 
     <td><% if time_slot.dayOfWeek = "Monday" %><%= time_slot.startTime %><% end %></td> 
     <td><% if time_slot.dayOfWeek = "Tuesday" %><%= time_slot.startTime %><% end %></td> 
    <td><% if time_slot.dayOfWeek = "Wednesday" %><%= time_slot.startTime %><% end %></td> 
    <td><% if time_slot.dayOfWeek = "Thursday" %><%= time_slot.startTime %><% end %></td> 
    <td><% if time_slot.dayOfWeek = "Friday" %><%= time_slot.startTime %><% end %></td> 
    <td><% if time_slot.dayOfWeek = "Saturday" %><%= time_slot.startTime %><% end %></td> 
    </tr> 
    <% end %> 

+0

那麼'@ time_slots'中是否有重複? –

+0

如果您不瞭解我的問題,請點擊此處鏈接。 http://i47.tinypic.com/znub03.png –

+0

不,我每天都有一個time_slot。而且在我的桌子上,它們每次出現6次。 –

回答

2

OK,你拿到它翻轉周圍......你需要的東西是這樣的:

<% days = %w[ Monday Tuesday Wednesday Thursday Friday Saturday] %> 

<% days.each do |day| %> 
    <td> 
    <% @time_slots.select {|time_slot| time_slot.dayOfWeek == day }.each do |time_slot| %> 
    <%= time_slot.startTime %><br/> 
    <% end %> 
    </td> 
<% end %> 

希望這會有所幫助,祝你好運。

+0

此外,您可能希望考慮將'dayOfWeek'更改爲更多的rails-y'day_of_week',並將'startTime'更改爲'start_time'。 –

+0

我認爲這是我需要的。但是,通過實施這一點。我無法在同一列下取得相同的日子,並且表中缺少一些值。似乎無法弄清楚我出錯的地方。這是一張照片。 http://tinypic.com/r/v2s7r4/6 –

+0

是的,你說得對,我搞砸了邏輯 - 檢查編輯...(製作過多的'​​'s) –