Car*_*mio 8 ruby validation activerecord ruby-on-rails dci
我正在关注DCI来构建新Rails应用程序的行为,但我对将验证放在何处有一些疑问.
传统上,如果您要使用ActiveRecord模型管理数据,则在从AR继承的特定类中定义验证,并且它们似乎适合作为数据层的一部分.
但是,在我看来,只有在特定角色下才能进行某些验证是有意义的,并且只应检查对象是否在该上下文中,在所有其他情况下都被忽略.这基本上意味着应该在特定角色定义那些验证,并且当对象在有意义的上下文中使用时,应该使用这些角色模块对对象进行扩展.
您是否认为将这些验证保留在角色中是个好主意?如果是这样,你如何声明它们而不会污染与对象相同类的其他实例?如果我想使用ActiveRecord验证,它们在类级别声明,因此我不能单独将它们附加到对象,强制在角色模块上使用"验证"实例方法的重新声明(附加直接对象的错误数组的错误,或一些类似的技术.
这取决于相关的验证/规则。DCI的主要目标是,如果规则与域模型相关联,则将系统是什么(域模型)与系统是什么(功能)分开。例如,SSN受欢迎程度的规则应为数据对象的一部分。另一方面,如果规则与系统的功能有关,例如,仅允许用户每周订购两个超级折扣产品,那么这取决于上下文
归档时间: |
|
查看次数: |
310 次 |
最近记录: |