我无法在表格中显示一周内的天数列表。
<%= form_for [@hourable, @hour] do |f| %>
<% days = []
Date::DAYNAMES.each_with_index { |x, i| days << [x, i] } %>
<% days.each_with_index do |day,index| %>
<div class="field">
<%= f.check_box day[0] %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我收到错误
undefined method `Sunday' for #<Hour:0x007fe13c764010>
但如果我只是显示
<%= day[0] %>
,它会给我一个列表Sunday, Monday, Tuesday, etc... to Saturday
我在这里做错了什么?
由于
答案 0 :(得分:20)
<% days = []
Date::DAYNAMES.each_with_index { |x, i| days << [x, i] } %>
<% days.each_with_index do |day,index| %>
<div class="field">
<%= f.check_box day[0] %>
</div>
<%= f.label :FIELD_NAME%>
<% Date::DAYNAMES.each do |day| %>
<%= f.check_box :FIELD_NAME, {}, day %>
<%= day %>
<% end %>
答案 1 :(得分:2)
这里的问题是在each_with_index
上调用days
,因为days
是一个数组数组,就像你构造它一样,其中每个元素的格式为[dayname, index]
您可以直接使用days
数组,或仅使用DAYNAMES
替换days.each_with_index
,而不是构建days.each do |x, i|
(但我个人认为这是无关紧要的)
如果您没有与复选框绑定,请参阅http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-select_day和Rails non-table drop down list。