tôi cần để chạy các đoạn mã sau trong ứng dụng Rails của tôi:Tại sao tôi không thể phân tích một chuỗi ngày được lưu vào một biến trong Ruby?
ActiveSupport::TimeZone["Central Time (US & Canada)"].parse(game.date).utc.to_date.strftime("%_m/%d")[1..-1]
đâu trò chơi là @games.each do |game|
Nhưng điều này không làm việc, tôi nhận được lỗi, TypeError: no implicit conversion of ActiveSupport::TimeWithZone into String
.
Tuy nhiên, tôi có thể chạy:
ActiveSupport::TimeZone["Central Time (US & Canada)"].parse("2014-04-11 12am").utc.to_date.strftime("%_m/%d")[1..-1]
trả về "4/11"
Làm thế nào tôi có thể sử dụng đoạn mã trên với `game.date' thay vì chuỗi cứng mã hóa?
EDIT
một trò chơi đối tượng trông giống như sau (từ db/seeds.rb):
Game.create(id: 9, date: "2014-04-11 12am", time: "705PM", opponent: "Jacksonville", away: false, event: "friday night fireworks")
EDIT 2
Trong ray console khi tôi làm trò chơi .date it trả về:
Fri, 11 Apr 2014 00:00:00 UTC +00:00
vì vậy có vẻ như nó không phải là một chuỗi.
là 'game.date' một chuỗi hoặc một loại đối tượng hẹn hò? – lurker
Bạn có thể vui lòng đăng đối tượng trò chơi mẫu hoặc mảng @game không? –
Tôi đã chỉnh sửa câu hỏi của mình. Cảm ơn! – reknirt