我正在尝试使用我的代码为 best_in_place gem 添加正确的语法:
<%= Time.at(task.hour).strftime("%I:%M %p") %>
我试过类似的东西
<%= best_in_place Time, :at(task.hour), :strftime("%I:%M %p") %>
但这似乎不起作用。对此有任何指示吗?
我正在尝试使用我的代码为 best_in_place gem 添加正确的语法:
<%= Time.at(task.hour).strftime("%I:%M %p") %>
我试过类似的东西
<%= best_in_place Time, :at(task.hour), :strftime("%I:%M %p") %>
但这似乎不起作用。对此有任何指示吗?
您可以使用 BIP 的 display_with 属性,并在您的 config/environments/xxx.rb 文件中添加自定义时间格式方法。此外,您应该使用实际对象而不是 Time 模型,在这种情况下,它看起来是任务,时间属性是小时?
鉴于:
<%= best_in_place task, :hour, :display_with => lambda { |t| t.to_s(:non_military_time) } %>
在 config/environments/development.rb, config/environments/production.rb, config/environments/test.rb 中(或者我确定你可以在一个地方声明它,但这是我过去的做法):
Time::DATE_FORMATS[:non_military_time] = "%I:%M %p"
如果您不希望时间出现前导零,也可以在定义中使用%l
代替。%I
希望这对某人有所帮助,即使这是一个老问题!