Tôi đang làm việc với một ứng dụng cho một trang web du lịch buổi hòa nhạc, mọi lúc (thời gian thông báo, thời gian bắt đầu bán hàng và thời gian bắt đầu sự kiện) là địa phương cho từng thời điểm của địa điểm cụ thể vùng. Tôi đưa người dùng nhập ngày/giờ khi áp dụng và chạy before_filter để đặt múi giờ thích hợp để mọi thứ được lưu trữ trong cơ sở dữ liệu trong UTC. Đối với biểu mẫu 'mới' và để hiển thị thời gian trong chỉ mục và hiển thị các hành động, không có vấn đề gì cả. Khi dữ liệu được đưa ra khỏi cơ sở dữ liệu và vào một chế độ xem, tôi sử dụng in_time_zone để điều chỉnh cho mỗi địa điểm cụ thể.Đường ray - Chọn ngày theo múi giờ được chỉ định
Vấn đề duy nhất là trên biểu mẫu chỉnh sửa. Lựa chọn ngày/giờ hiển thị dữ liệu trong UTC. Khi tôi đang làm việc trên trang web, tôi tinh thần điều chỉnh, nhưng đối với những người khác thì điều đó thật khó hiểu. Tôi muốn làm điều gì đó dọc theo dòng:
<%= f.datetime_select :start_datetime.in_time_zone(@event.time_zone) %>
Hoặc, trong bộ điều khiển:
def edit
@performance = Performance.find(params[:id])
@event = @performance.event
@performance.start_datetime = @performance.start_datetime.in_time_zone(@event.time_zone)
end
Sau đó, đơn giản, <%= f.datetime_select :start_datetime %>
.
Thật không may, tôi đã không tìm được đúng cách để thực hiện việc này. Bạn có ý tưởng nào đáng để bắn?
Cảm ơn bạn rất nhiều.