Зацикливание строки добавляет пробел между символами в Ruby - PullRequest
0 голосов
/ 17 января 2020

У меня есть строка внутри объекта, которую я хочу l oop, чтобы найти определенные c символы (#), если она существует внутри текста типа базы данных. Поэтому я go буква за буквой, чтобы проверить, существует ли она. Но когда я это делаю, между символами появляется дополнительный пробел. Такая же настройка работала нормально в php. Эта строка находится внутри файла erb. Он отображается внутри div. Если я просто сделаю

<%= feed.text %>

Все нормально, но я не могу проверить, есть ли внутри #.


Ожидаемый результат: Эй

Что я получу : H ey

Как бы это исправить?

Это мой код:

<div class='tweet-text'>                
   <% i = 0 %> 
   <%  while i < feed.text.length  do %>
        <%= feed.text[i] %>
        <% i += 1 %>
   <% end %>
</div>

В настоящее время я просто хочу, чтобы он отображался правильно, без пробелов. И если он нашел #. И поскольку возникли вопросы, я хочу затем раскрасить # до какого-нибудь цвета.

Ответы [ 2 ]

1 голос
/ 20 января 2020

На самом деле я тогда искал более Ruby на Rails-подобном решении, чем выше, так что тогда я могу показать любое слово в виде ссылки, и это намного проще.

<div class='tweet-text'>                
    <%= highlight(feed.text, /#\w+/, highlighter: '<a href="search?q=\1">\1</a>') %>
</div>
0 голосов
/ 18 января 2020

Между каждой буквой есть несколько пробелов, поэтому пробелы отображаются таким образом.

Ваш код не очень похож на ruby, но если вы действительно хотите сохранить его таким, какой он есть , вы могли бы написать это так:

<div class='tweet-text'>                
  <% i = 0 %> 
  <% while i < text.length  do %><%= text[i] %><% i += 1 %><% end %>
</div>

Надеюсь, вы снова посетите его и улучшите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...