Rails可以自动解析从表单的text_field收到的日期时间吗?
# in view
<div class="field">
<%= f.label :created_at %><br />
<%= f.textfield :created_at %>
</div>
# in controller
params[:product][:updated_at].yesterday
目前我遇到以下错误:
undefined method `yesterday' for "2010-04-28 03:37:00 UTC":String
答案 0 :(得分:1)
如果您将该参数直接放入模型中,正如rails生成器样板代码所做的那样,ActiveRecord
会为您处理
def create
@product = Product.new(params[:product])
@product.updated_at.yesterday #will succeed
#rest of method
end
除此之外你还遇到了类似的问题:
DateTime.parse(params[:product][:update_at])
或
DateTime.civil_from_format(:local, year, month, day, hour, minutes, seconds)
但是,根据我的经验.civil_from_format
不能像夏令时那样有效。