Я хочу создать столбец в таблице «Больше заказов» для номера заказа.
Мне интересно, как лучше всего создать этот номер.
Я создал следующий код вмодель моих заказов:
before_validation :generate_order_number, on: :create
def generate_order_number
begin
self.order_number = SecureRandom.random_number(10*10000)
end while self.class.find_by(order_number: order_number)
end
Скорее всего, это хорошо, но мне интересно, есть ли лучший / более эффективный способ?
Каков код, всегда по крайней мере 5случайное число или 6 цифр.
Будучи разборчивым, мне бы хотелось, чтобы оно было установлено на n
цифр.
Чтобы уточнить, должны быть проверки на уникальность order_number
Обновление:
Рабочий код теперь:
begin
self.order_number = 5.times.map { [*0..9].sample }.join.to_i
end while self.class.find_by(order_number: order_number)
end