0

注:これは私の最初の投稿ですので、親切にしてください。私はレールの初心者なので、単純なものが欠けている可能性が非常に高いです。

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
4

1 に答える 1