Попытка скопировать то, что делает friendly_id, чтобы превратить сильного в слизняка
Мне нужно скопировать способ, которым friendly_id превращает текст в слагов.
Я использовал это для моего приложения
text = "random text"
text_gsubed = (value.gsub ' ', '-')
slug = text_gsubed.downcase
Но недавно я понял, что для текста с не алфавитными или числовыми символами он генерирует слаг, отличный от того, что генерирует firendly_id, например
text = "random >> text"
text_gsubed = (value.gsub ' ', '-')
slug = text_gsubed.downcase
Слизень код выше генерирует = random->>-text
Пуля feindly_id генерирует = random-text
Я хотя, может быть, у них есть встроенный метод, который вы можете использовать глобально, как text.slug
или же text.friendly_id
если у вас установлен драгоценный камень, но я не могу его увидеть. Я также заглянул в их файлы, чтобы найти метод, который превращает строку в слаг, но не могу ее найти.
Как я могу подражать тому, что делает friendly_id?
1 ответ
Я бы, наверное, заглянул в ActiveSupport::Inflections# параметризация.
В вашем случае вы сможете позвонить:
text.parameterize
Если вы хотите объединить и с другими параметрами, возможно, id или что-то, что вы можете сделать:
[id, title, others].join(' ').parameterize