best_in_place的时间下拉列表

时间:2013-05-05 19:43:59

标签: ruby-on-rails time selector best-in-place

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

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

我尝试过像

这样的事情
<%= best_in_place Time, :at(task.hour), :strftime("%I:%M %p") %> 

但这似乎不起作用。关于这个的任何指针?

1 个答案:

答案 0 :(得分:0)

您可以使用BIP的display_with属性,并在config / environments / xxx.rb文件中添加自定义时间格式方法。而不是时间模型,你应该使用实际的对象,在这种情况下看起来是任务,时间属性是小时?

在视图中:

<%= 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。希望这有助于某人,即使这是一个老问题!