我想在simple_form中将1448607600(= 2015-11-27 07:00:00 +0000)预分配给名为starts_at的日期时间属性。我做了以下但没有奏效。请帮助!
<%= f.input :starts_at, input_html: { value: Time.at(1448607600) } %>
我也做了以下但没有运气:
<%= f.input :starts_at, input_html: { value: Time.at(1448607600).to_s.to_datetime) } %>
答案 0 :(得分:1)
如果您在控制器中将默认日期指定为评论中建议的@Mareq会更好,但您也可以使用模型中的回调来执行此操作
假设您有一个名为Resource的模型,在控制器中您可以这样做:
@my_object = Resource.new
@my_object.starts_at = Time.at(1448607600)
或者在模型中你可以拥有:
DEFAULT_TIME = 1448607600.freeze
after_initialize :set_default_time, :if => :new_record?
private
def set_default_time
self.starts_at = Time.at(DEFAULT_TIME)
end
在new
视图的两种情况下,您都会遇到这样的情况:
<%= simple_form_for @my_object do |f| %>
<%= f.input :starts_at %>
<% end %>
答案 1 :(得分:0)
不确定您获得了哪些错误,但DateTime.strptime函数应该为您提供一个有效的DateTime对象,您可以格式化您喜欢的方式
<%= f.input :starts_at, input_html: { value: DateTime.strptime("1448607600",'%s').to_s } %>