在窗体中显示一周中的天数列表时遇到问题。
<%= 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
我到底做错了什么?
谢啦,谢啦
3条答案
按热度按时间4xy9mtcn1#
更换
与
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。
dluptydi3#
在尝试访问它的常量之前,我必须在
ruby 3.2.0
中访问require 'date'
。