Как мне разобрать текст по ссылке в рельсах - PullRequest
0 голосов
/ 13 марта 2019

Я работаю над обычным приложением для блогов rails, мне нужно добавить функцию тегов (тот же тег, что и в каждой социальной сети).

Пример записи: "Я люблю #dogs".Что мне нужно сделать, это отобразить тег #dogs как link_to dogs_path.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Вы можете использовать регулярное выражение для сканирования строки и извлечения хэстэгов

пример

source = 'Lets #go to the #gym #today'

hashes = source.scan /\B#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+/

puts hashes

увидеть его в replit

создать помощникаметод

class SocialHelper
  def linked_content(source)
    hashes = string.scan(/\B#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+/)
    hashes.each do |hash|
      source.gsub!(hash, hash_link(hash)
    end
    source
  end

  def hash_link(hash)
    link_to hashes_path(hash)
  end
end

просмотр

<%= linked_content(post.content) %>
0 голосов
/ 13 марта 2019

Вы можете сделать ссылку из текста с этим ERB в вашем HTML-файле: <%= link_to "#dogs", dogs_path %>

Где строка, следующая непосредственно за link_to, - это строка, которая будет заполнена как текст на странице (гиперссылка).

Для вашего случая вы можете сделать что-то вроде:

<p>I love <%= link_to "#dogs", dogs_path %>.</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...