Đoạn mã dưới đây chắc chắn rằng một time_zone
chọn nằm trong múi giờ trong ActiveSupport::TimeZone.us_zones
:validates_inclusion_of không còn hoạt động như cũ trong Rails 4.1?
validates_inclusion_of :time_zone, in: ActiveSupport::TimeZone.zones_map(&:name)
Làm việc tuyệt vời trong Rails 4.0. Chỉ cần nâng cấp lên Rails 4.1 và tôi nhận được lỗi này trên trang chỉ mục của tôi (chỉ cần xem các mô hình):
Một đối tượng với phương pháp #include? hoặc một proc, lambda hoặc biểu tượng được yêu cầu, và phải được cung cấp như: trong (hoặc: trong vòng) tùy chọn của băm cấu hình
Tôi đoán từ đó, ActiveSupport::TimeZone.zones_map(&:name)
không còn là một giá trị hợp lệ cho thuộc tính in
?
Làm cho cảm giác, tôi nghĩ rằng nó làm việc ... Tôi nhận được rất nhiều lỗi khác bây giờ quá :(Hình như tôi sẽ chờ đợi trên đường ray 4.1 ... –
Đối số khối, '&: name' không liên quan đến việc triển khai 4.1. zone_map trả về đối tượng ThreadSafe :: Cache, không phải là một hàm băm. Nó không hỗ trợ #include ? Phương thức như một cách để xác định xem khóa có tồn tại hay không. 'ActiveSupport :: TimeZone.zones_map.keys' là đủ trong 4.1. –