10

我在表格中显示一周中的天数列表时遇到问题。

<%= 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

我在这里做错了什么?

谢谢

4

2 回答 2

22

代替

<% 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 %>
于 2013-06-26T03:28:06.183 回答
2

这里的问题是调用each_with_indexdays因为days您构造它的方式是一个数组数组,其中每个元素都有[dayname, index].

days您可以DAYNAMES直接从数组中处理,或者days.each_with_index用 just替换days.each do |x, i|(但我个人认为这是无关紧要的) ,而不是 build up 。

如果您未绑定复选框,另请参阅http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-select_dayRails 非表格下拉列表。

于 2013-06-26T03:28:27.767 回答