在红宝石在轨道上,每个模型实体具有"validate_on_的东西"挂钩方法,将所谓的之前,该实体实际上是持续的数据库。我想类似的功能在谷歌的应用程序的发动机。我知道你可以做到验证个人的特性的传递参数,以他们在他们的声明。然而,如果我要做更多的验证,是有些地方内的模型类声明在哪我可以那样做?

此外,沿着同一思路,有时候,一个实体要求修改之前实际上坚持的数据库。我可能需要修改(变换)的实体权利之前,它实际上是写入数据库。是有一些地方在实体一级宣言,将允许我这样做吗?

我知道,我可以把这些变革/验证外。卜此似乎并不喜欢好OO的设计。它真的似乎是应该挂钩的方法,将自动被称为在一个模型,用于这些种类的需要。

所以我的问题是,什么是最适当的方式来处理的验证和转换的实体之前,他们坚持?

有帮助吗?

解决方案

最好的答案取决于什么样的转变需要做。有没有广义的前/后放的方法的模式,但有几种其他选择:

  • 正如你所提到的,你可以通过验证功能的财产类的构造
  • 你可以使用一个定义属性的类产生的数值编程方式,例如 这一个.
  • 你可以修改实体,因为他们被储存在最低水平使用 api电话挂钩.

其他提示

您是否在原始应用引擎api之上使用任何类型的Web框架? Rails是一个非常高级的框架。您是否查看过Django或任何其他Web框架?您可能会发现它们比原始的appengine实体更接近轨道。

或者,如果您想要更低级别的内容,请查看本文 挂钩

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top