在我们的项目中,我们的用户可以拥有多张信用卡。他一次只应该有一个默认值(布尔值:true)。从当前的UI和当前的应用程序逻辑来看,不可能有多个。但是,如果您打开一个rails控制台,您可以更改并拥有多个控制台。
编写一些额外的代码是一个好习惯,它会检查用户的所有信用卡记录,将默认信用卡的数量限制为模型级别的一个?或者这是否过度工程?
答案 0 :(得分:2)
我会在模型中禁止它,特别是如果有两个默认值会破坏它。这样一来,未来的程序员就会知道这很糟糕,如果他没有注意到并且无论如何都会这样做,他会被告知。
答案 1 :(得分:1)
在我看来,编写额外的验证是一种很好的做法。模型是与持久业务对象相关的代码的位置(依赖于Rails约定)。如果业务对象user
具有collection of credit cards
且此集合具有一些业务规则,则应在模型中对其进行描述。
一些论点: