Ba lựa chọn:
1) Chắc chắn bạn không bao giờ có một ngày nil. Tùy thuộc vào sản phẩm bạn đang cố gắng tạo, nhưng trong nhiều trường hợp, sẽ không có ý nghĩa gì khi hiển thị ngày nil. Nếu, đối với sản phẩm của bạn, ngày nil là hợp lý, điều này sẽ không hoạt động.
2) Viết chế độ code ở khắp mọi nơi để ẩn các con số không:
<%= order.ship_date ? l(order.ship_date, :format => :long) : 'Date unavailable' %>
3) Viết một hàm helper để làm điều này cho bạn:
def display_date(date, message='Date unavailable')
date ? l(date, :format => :long) : message
end
Sau đó, tất cả các bạn phải làm ở mỗi nơi bạn muốn điều trị ngày này là để nói:
<%= display_date(order.ship_date) %>
Trong trường hợp của tôi, tôi đang sử dụng 'text_field' và failsafe hoạt động tốt. Cảm ơn! Kết quả là: '<% = f.text_field: due_date,: value => (l (order.due_date) nếu order.due_date.present?)%>' –