У меня есть модель с именем voip_phone
, у которой есть атрибут schedule
, представляющий собой строку, которая отслеживает, в какое время люди используют телефон.Вот пример schedule
:
"mon{}sun{}sat{}tue{13,08:45,15:15;}wed{13,09:00,17:30;}thu{}fri{}"
Вот код модели, который не будет работать:
def add_shift(days, person_id, time_from, time_to)
return false if shift_overlap?(days, time_from, time_to)
days.each do |d|
insert_point = self.schedule.index(d)+4
self.schedule.insert(
insert_point, [person_id.to_s, time_from, time_to].join(",") + ";")
end
save!
end
Независимо от того, что я делаю,Я не могу заставить этот метод работать.Вот показания с консоли:
v = VoipPhone.find(5)
=> blah, blah, blah
v.add_shift(["thu", "fri"], 13, "08:45", "15:15")
=> true
Кажется, это работает, но изменения не сохраняются.Вызов v.schedule
показывает новое расписание, но вызов VoipPhone.find(5).schedule
по-прежнему показывает старое расписание.Вызов v.save
вернет истину, но изменения все равно не сработают!
Любая помощь, которая может быть предложена душе без кармы, будет принята с благодарностью:)