0
我有两个符号,其值由用户设置。ActiveRecord验证:一个符号的最大长度为值减去另一个符号的长度
我需要验证它们的长度。每个符号的最大长度需要是32减去另一个符号的长度。
我已经写得像这么远,但这是行不通的。有没有人有任何建议,这可以如何工作?
validates :id, presence: true, uniqueness: { scope: :name }, length: { maximum: 32 - :name.length }
validates :name, uniqueness: { scope: :id }, length: { maximum: 32 - :id.length }
注意:我只是一个毕业生,所以我有很大的机会完成这个错误,因为我仍然在学习,并且还没有真正理解符号。
我想你应该写'id.to_s'。 –
'id'验证的唯一性是不必要的.. :)'name'上的唯一性很好..不需要使用'id'作为范围.. –
作为@Arup asys,如果'id'实际上是您的主键,正如Rails中的正常情况一样,在'name'的唯一性约束中添加'{scope:id}'是错误的,因为两个相同的名称由于其不同的id而始终是唯一的。 –