ПРИМЕЧАНИЕ. Это мой первый пост, поэтому будьте добры. Я новичок в рельсах, поэтому вполне вероятно, что я упускаю что-то простое.
Я работаю с приложением 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'
Строки 116-118 в месте проведения.рб:
def timezone
ActiveSupport::TimeZone.new(timezone_name)
end
Строки 78-87 в файле events_controller.rb:
["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
timezone_name
равно null является одним из объектовvenue
. Какой код дляtimezone_name
? Это метод переменной? - person Rajesh Kolappakam   schedule 08.10.2013timezone_name
? - person Rajesh Kolappakam   schedule 08.10.2013