2011-01-07 64 views
0

嘿所有, 我使用Rails 3和Chronic gem(用於日期解析),並且需要創建過去6個月的星期日選擇列表。這是我到目前爲止:在Rails 3中生成周日的選擇列表3

<% 
    # weeks in 6 months = 26 
    week = 1 
    sunday = Date.parse(Chronic.parse('this sunday').to_s) 
    sunday_array = [] 
    while week <= 26 
    sunday_array << sunday - (week * 7) 
    week += 1 
    end 
%> 
<%= select_tag 'sunday', options_for_select(sunday_array) %> 

有沒有人知道這樣做的更好/更清潔的方式?謝謝。

回答

1

你可以玩高爾夫球的代碼與...

sunday = Date.parse(Chronic.parse('this sunday').to_s) 
sunday_array = [] 
26.times { |i| sunday_array << sunday - (i * 7) } 

然後擺脫你的幻數....

NUM_SUNDAYS = 26 
sunday = Date.parse(Chronic.parse('this sunday').to_s) 
sunday_array = [] 
NUM_SUNDAYS.times { |i| sunday_array << sunday - (i * 7) } 

而且很明顯,你將它移動到一個輔助方法所以它不在你的ERB中。 :)

+0

謝謝德魯。我不得不使NUM_SUNDAYS小寫,但它的工作。 – 2011-01-07 18:02:02