ruby 使用Date::DAYNAMES在Rails中显示一周中的天数列表

hjzp0vay  于 2022-12-29  发布在  Ruby
关注(0)|答案(3)|浏览(122)

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

<%= 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
我到底做错了什么?
谢啦,谢啦

4xy9mtcn

4xy9mtcn1#

更换

<% 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 %>
14ifxucb

14ifxucb2#

这里的问题是在days上调用each_with_index,因为days是一个数组的数组,就像您构造它的方式一样,其中每个元素的形式都是[dayname, index]
您可以直接使用DAYNAMES数组,或者只使用days.each do |x, i|替换days.each_with_index(但我个人认为这是无关紧要的),而不是构建days
如果http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-select_day您没有绑定到复选框,也请参见www.example.com和Rails non-table drop down list

dluptydi

dluptydi3#

在尝试访问它的常量之前,我必须在ruby 3.2.0中访问require 'date'

相关问题