注:これは私の最初の投稿ですので、親切にしてください。私はレールの初心者なので、単純なものが欠けている可能性が非常に高いです。
Ruby on Rails アプリケーションをローカルで使用していて、テスト フォームに入力しようとすると、次の ArgumentError が発生します。
invalid argument to TimeZone[]: nil
アプリケーション トレースは次を示します。
app/models/venue.rb:117:in `timezone'
app/controllers/events_controller.rb:80:in `block in create'
venue.rb の 116 ~ 118 行目:
def timezone
ActiveSupport::TimeZone.new(timezone_name)
end
events_controller.rb の 78 ~ 87 行目:
["start", "end"].each do |t|
month, day, year = params["event"]["#{ t }_date"].split("/")
@event.send("#{ t }s_at=", @event.venue.timezone.local_to_utc(Time.utc(
("20" + year).to_i,
month.to_i,
day.to_i,
military_hours(t),
params["#{ t }_minute"].to_i,
0
)))
フォームはライブ サイトで正しく機能するため、開発環境を不適切にセットアップする可能性があります。誰かが私を正しい方向に向けることができますか?
アップデート
class Venue
key :timezone_name, String
def set_timezone_name
tz = Timezone.contains(self)
self.timezone_name = tz.name if tz
end