【发布时间】:2010-06-08 18:59:51
【问题描述】:
我有一个名为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 返回 true,但更改仍然不会生效!
任何可以提供给无业灵魂的帮助将不胜感激:)
【问题讨论】:
标签: ruby-on-rails model save