Я ищу способ разбора текста, чтобы превратить в ссылки объекты моего веб-приложения, содержащиеся в тексте. Чтобы было понятно, давайте возьмем этот текст в качестве примера:
Stoner rock and stoner metal are two related sub-genres of hard rock and heavy metal respectively, both combining elements of psychedelic rock, blues-rock, traditional heavy metal and doom metal. The genre emerged during the early 1990s and was pioneered foremost by the Californian bands Kyuss and Sleep.
Я бы хотел связать все жанры, группы и альбомы, которые появляются в тексте (и существуют как сущности в моем веб-приложении), например:
<a href="/genre/1">Stoner rock</a> and stoner metal are two related sub-genres of hard rock and <a href="/genre/2">heavy metal</a> respectively, both combining elements of psychedelic rock, blues-rock, traditional <a href="/genre/2">heavy metal</a> and <a href="/genre/4">doom metal</a>. The genre emerged during the early 1990s and was pioneered foremost by the Californian bands <a href="/band/1">Kyuss</a> and <a href="/band/2">Sleep</a>.
Я думал о разных альтернативах, таких как:
- Хранение кода рельсов в базе данных, который будет выводить ссылки (некрасиво и небезопасно),
- Выполните полный поиск в базе данных перед вставкой текста и
а. Найти и преобразовать все мои объекты в ссылки перед сохранением или
б. Сохраните идентификаторы сущностей в отдельном столбце, поместите теги привязки, а затем в представление, объедините каждый идентификатор сущности с его тегом привязки
Я не очень доволен любой из альтернатив, я думаю, что должен быть разумный способ справиться с этим. Можете ли вы предложить лучший подход? Я использую Ruby On Rails 3.