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而始終是唯一的。 –