Tôi đang sử dụng bootstrap3-datetimepicker-rails đá quý để cho phép người dùng lưu trữ các scheduled_date
của một WorkOrder
trong ứng dụng của tôi (sở hữu một 'DateTime'), nhưng tôi nhận được một lỗi argument out of range
khi người dùng gửi biểu mẫu để tạo WorkOrder
và ngày rất khác so với những gì được chọn bất cứ khi nào người dùng bật màn hình chỉnh sửa. Điều buồn cười là nó được sử dụng để làm việc, nhưng tôi không biết mã nào có thể thay đổi để phá vỡ nó.Đối số nằm ngoài phạm vi Rails 4 và bootstrap3-DateTimePicker-ray
tôi đã thêm các phụ thuộc cần & bao gồm các chỉ thị thích hợp trong file CSS/JS của tôi:
gem 'momentjs-rails', '~> 2.5.0'
gem 'bootstrap3-datetimepicker-rails', '~> 3.0.0'
Theo như tôi có thể nói, mã của tôi trông giống với ví dụ về tài liệu. Dưới đây là đoạn hình thức của tôi:
<div class="row">
<div class="col-md-4">
<div class="form-group">
<%= f.label :scheduled_date %>
<div class='input-group date'>
<span class="input-group-addon"><span class="fa fa-calendar"></span></span>
<%= f.text_field :scheduled_date, class: 'form-control input-lg', id: "service_date_picker" %>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function() {
$('#service_date_picker').datetimepicker({
icons: {
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-arrow-up",
down: "fa fa-arrow-down"
}
});
});
</script>
EDIT (quên thêm mã điều khiển - siêu đơn giản):
work_orders_controller.rb
def create
@work_order = WorkOrder.new(work_order_params)
... [it errors on the line above]
end
Và whitelist tham số của tôi:
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
Và ví dụ về tham số s mà cung cấp cho các lỗi argument out of range
khi tôi lưu các hình thức:
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"=>""}}
Tương tự như customers_controller.rb
tôi, nơi tôi có một hình thức lồng nhau cho một WorkOrder
bên trong các hình thức khách hàng mới (mọi thứ khác trên hình thức mà hoạt động hoàn hảo):
def create
@customer = Customer.new(customer_params)
... [errors above]
end
Ngày và giờ tiết kiệm chính xác nếu trong vòng 24 giờ, nhưng ngay cả khi nó lưu chính xác, ngày hiển thị hoàn toàn lạ và không định dạng trong trường văn bản khi tôi chỉnh sửa WorkOrder
. Ví dụ:
Khi tôi chọn ngày từ bộ chọn ngày: 05/06/2014 10:28 AM
Khi tôi chỉnh sửa WorkOrder
: 2014-06-05 10:28:00.000000
Bất kỳ ý tưởng? Bất kỳ tuỳ chọn nào về việc tôi có nên tạo trường đó là Date
, Time
hoặc DateTime
(hiện tại) không? Ngay bây giờ, chúng tôi đang làm việc ở múi giờ Trung tâm, nhưng điều đó không phải lúc nào cũng đúng.
Cảm ơn bạn đã chỉ cho tôi đúng hướng!
có thì bạn nhận được lỗi? trong bộ điều khiển? mã điều khiển ở đâu? –
@UriAgassi: Đã thêm mã điều khiển theo yêu cầu. Nó không phải là một vấn đề với phương pháp danh sách trắng tham số mạnh mẽ của tôi trong bộ điều khiển của tôi, vì vậy tôi đã không bao gồm phương pháp đó. –
Hãy giúp chúng tôi giúp bạn! Nếu bạn biết lỗi nằm trong dòng đầu tiên, bạn không nghĩ _values_ của 'customer_params' và' work_order_params' có liên quan –