我正在尝试以一种很好的方式输出时间。 这是我的新代码
<%= form_for @reservation do |f| %>
<span><label>Pick up time</label></span>
<%= f.time_select :time,ampm: true, class: "textbox"%></span>
<% end %>
这是在输出文件中
<strong>Pick up Time:</strong> <%= @reservation.time.strftime("%H:%M") %>
我收到此错误 对于“ {1 => 2019,2 => 7,3 => 7,4 => 16,5 => 0}”的未定义方法`strftime':字符串 你的意思是?剥离
请有人帮我解决这个问题
答案 0 :(得分:1)
正如塞巴斯蒂安在评论中提到的那样;看起来您的time
对象是一个哈希。要调用strftime
,您的对象必须是:datetime
。
要解决此问题,您应该将数据库中的列类型更改为datetime(以及更改表单以保存datetime值)。
一种替代方法是使用time
中的内容(而不使用strftime)来构建要手动显示的字符串。
答案 1 :(得分:0)
如果您只想使用此哈希,则需要将其解析为如下所示的日期时间
a = {1=>2019, 2=>7, 3=>7, 4=>16, 5=>0}
time = (a.values.first(3).join("/") + " "+ a.values.last(2).join(":")).to_datetime.strftime("%I:%M %p")
解析日期和时间后,您可以执行日期时间的任何方法。