Проблема: У меня возникли проблемы, возникающие в результате выполнения цикла, соответствующего определенному регулярному выражению.
Я работаю с API-интерфейсом Twitter для получения имен пользователей (username2), которые твитнули сообщения другому пользователю(имя пользователя) и я создал это в моем контроллере:
@user_results = TwitterApi.client.search("to:username1", result_type: "recent").take(10).collect do |tweet|
puts "#{tweet.user.screen_name}" if tweet.user.screen_name.gsub(/\A^username2\z.*/)
Затем зациклите, как это в моем представлении:
<% @user_results.each do |user| %>
<%= user %>
<% end %>
Этоничего не дает, даже когда должно быть результатом.
Если я использую "#{tweet.user.screen_name}".gsub(/\A^username2\z.*/)
Это приводит к:
<Enumerator:0x00007fb3a4b2f2a0>
Я также пытался:
tweet.user.screen_name.gsub(/\A^username2\z.*/) { |match| "#{tweet.user.screen_name}"}
Но в результате все результаты вместо того, чтобы соответствовать
Это прекрасно работает, если я потеряю puts "#{tweet.user.screen_name}" if tweet.user.screen_name.gsub(/\A^username2\z.*/)
и просто использую "#{tweet.user.screen_name}"
.При этом отображаются все имена пользователей.
Регулярное выражение, которое я использую, если оно правильно, и работает со всеми вариациями на веб-сайте Regx101.
Я хочу, чтобы приносил только результаты или былtrue, если появляется конкретное имя пользователя.
Что я делаю не так?Это фрагмент контроллера или сторона просмотра?
В целом, я хочу иметь возможность привести имя пользователя и дать истинное значение ||ложь.