【发布时间】:2009-04-29 19:12:02
【问题描述】:
我有一个应用程序,它有很多相互依赖的数据库关系才能成功运行应用程序。应用程序中的铰链是一个名为 Schedule 的模型,但该计划将拉取 Blocks、一个 Employee、一个 JobTitle 和一个 Assignment(除此之外,每个 Block 也会从数据库中拉取一个 assignment)到制定全天的员工时间表。
在构建应用程序时,我非常重视验证,以确保在将所有内容保存到数据库之前,所有部分都必须到位。到目前为止,效果非常好,该应用程序已经上线并运行了近 6 个月,每月处理大约 150,000 个请求,没有出现任何问题或错误。直到上周。
上周,当有人更改日程时,看起来数据库出错了,并且日程被保存到数据库中,但其分配丢失。因为在每个视图中都会调用关联,所以无论何时从数据库调用此调度,应用程序都会抛出 NoMethod 错误以调用 nil。
在按照我所说的方式设计应用程序时,您是否防止数据库/验证部分可能出现故障?如果是这样,您如何以编程方式防御它?在将其发送到视图之前,您是否检查了每个关系以确保它不为零?
我知道这个问题泛泛而谈,如果我能更具体地表达我的意思,请在 cmets 中告诉我。
【问题讨论】:
标签: ruby-on-rails ruby model