Я хочу иметь URLs, как это:Дружественные ID пробкового не содержит идентификатор
http://domain.com/products/454-table-lamp
Поэтому я использую friendly_id так:
extend FriendlyId
friendly_id :slug_candidates, use: :history
def slug_candidates
[
[:id, :title]
]
end
Теперь, так как дружественный идентификатор генерирует слизняка до объект сохраняется я в конечном итоге с URL, как так (Пожалуйста, обратите внимание на недостающую идентификатор в URL):
http://domain.com/products/table-lamp
Сейчас пока это не слишком плохой как таковой. Как только я сохраняю другой продукт под названием «Настольная лампа», я получить URL, как это:
http://domain.com/products/table-lamp-ebaf4bf5-a6fb-4824-9a07-bdda34f56973
Так что мой вопрос, как я могу убедиться, дружелюбный ID создает слизняк, содержащий идентификатор, а также.
Я взял на себя смелость, чтобы отредактировать ваш ответ, потому что я столкнулся с переполнением стека, поэтому я должен проверить, что идентификатор еще нет. – Besi
Спасибо Besi :). Я думаю, 'after_commit: update_slug, on:: create' делает трюк для этого. Обязательно ли проверять идентификатор? –
Да, когда я не проверяю идентификатор при каждом сохранении, метод 'update_slug' будет вызван снова. – Besi