1

我正在尝试使用我的代码为 best_in_place gem 添加正确的语法:

<%= Time.at(task.hour).strftime("%I:%M %p") %>

我试过类似的东西

<%= best_in_place Time, :at(task.hour), :strftime("%I:%M %p") %> 

但这似乎不起作用。对此有任何指示吗?

4

1 回答 1

0

您可以使用 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希望这对某人有所帮助,即使这是一个老问题!

于 2013-11-18T20:22:02.640 回答