В этом случае вы можете создать свой собственный метод, который затем можете передать friendly_id
. Там вы можете определить, какие будут комбинации, которые FriendlyId будет использовать для назначения уникального идентификатора вашей записи как слаг.
Например:
friendly_id :column_candidates, use: :slugged
def column_candidates
[
:name,
[:name, :another_column],
[...more columns combinated as a fallback]
]
end
Если FriendlyId может не создавать уникальную запись (слагом) после оценки каждой комбинации столбцов в column_candidates
, затем она все равно добавит UUID.
Вы можете добавлять объекты, которые вы хотите column_candidates
, будучи строками, процами, лямбдами или символами. Также имя метода не обязательно должно быть именно таким, вы можете изменить его по мере необходимости.
В качестве последнего ресурса, и если уникальный идентификатор не может быть создан, вы можете положиться на создание собственного короткого и всегда в состоянии не быть уникальным ха sh используя Digest::SHA1
:
...
[-> { Digest::SHA1.hexdigest(name).chars.sample(6).join }]