我正在使用bootstrap3-datetimepicker-rails gem让用户在我的应用程序中存储scheduled_date
a WorkOrder
('DateTime'属性),但是argument out of range
当用户提交表单来创建时,我收到错误WorkOrder
,日期是与用户弹出打开编辑屏幕时选择的内容非常不同.有趣的是它曾经工作,但我不知道什么代码可以改变来打破它.
我添加了所需的依赖项并在我的CSS/JS文件中包含了正确的指令:
gem 'momentjs-rails', '~> 2.5.0' gem 'bootstrap3-datetimepicker-rails', '~> 3.0.0'
据我所知,我的代码看起来与文档中的示例相同.这是我的表格的片段:
<%= f.label :scheduled_date %><%= f.text_field :scheduled_date, class: 'form-control input-lg', id: "service_date_picker" %>
编辑(忘了添加控制器代码 - 超级简单):
work_orders_controller.rb
def create @work_order = WorkOrder.new(work_order_params) ... [it errors on the line above] end
我的参数白名单:
def work_order_params params.require(:work_order).permit(:caller_name, :brief_job_details, :contract_price, :quoted_by, :job_description, :scheduled_date, :time_materials_details, :sheduled_time, :contact_name, :payment_method, :notes, :customer_id, :job_site_id) end
以及argument out of range
在保存表单时给出错误的参数示例:
work_orders_attributes"=>{"0"=>{"caller_name"=>"Justin", "time_materials_details"=>"", "contract_price"=>"", "quoted_by"=>"", "payment_method"=>"", "job_description"=>"", "scheduled_date"=>"05/23/2014 1:28 PM", "notes"=>""}}
与我的新客户表单内部的customers_controller.rb
嵌套表单相同WorkOrder
(该表单上的其他内容完美运行):
def create @customer = Customer.new(customer_params) ... [errors above] end
如果日期和时间在24小时之内,则可以正确保存日期和时间,但即使正确保存,当我进行编辑时,日期在文本字段中显示完全奇怪且未格式化WorkOrder
.例如:
当我从日期选择器中选择日期时: 05/06/2014 10:28 AM
当我编辑WorkOrder
:2014-06-05 10:28:00.000000
有任何想法吗?任何偏爱我是否应该作出这样的领域Date
,Time
或DateTime
(目前)?现在,我们正在中央时区工作,但情况并非总是如此.
提前感谢您指出我正确的方向!