У меня есть два символа, значения которых заданы пользователем.Проверка ActiveRecord: максимальная длина одного символа для значения минус длина другого символа
Мне нужно проверить их длину. Максимальная длина каждого символа должна составлять 32 минус длина другого символа.
Я написал это так до сих пор, но это не работает. Есть ли у кого-нибудь предложения о том, как это может работать?
validates :id, presence: true, uniqueness: { scope: :name }, length: { maximum: 32 - :name.length }
validates :name, uniqueness: { scope: :id }, length: { maximum: 32 - :id.length }
NB: Я только закончил, так что есть большой шанс, я сделал это совершенно неправильно, потому что я все еще учусь, и на самом деле не понимают символы еще.
Думаю, вы должны написать 'id.to_s'. –
Также уникальность проверки 'id' не нужна. :) Уникальность в' name' прекрасна. Не нужно расширять ее с помощью 'id'. –
Как @Arup asys, если' id' на самом деле является вашим основным ключом , как обычно в Rails, добавление '{scope: id}' к ограничению уникальности на 'name' неверно, потому что два одинаковых имени всегда будут« уникальными »из-за их разных' id '. –