Html 循环中的内容复制

Html 循环中的内容复制,html,css,ruby-on-rails,ruby,Html,Css,Ruby On Rails,Ruby,出于某种原因,下面else语句中的tweet重复出现,我不明白为什么 如果tweet包含该短语,他们将收到编辑的div。如果tweet不包含该短语,他们应该有常规文本。但是,如果推文中没有包含该短语,那么出于某种原因,这些推文会出现两次 这与循环的设置方式有关吗 <section id="tweets"> <ul> <% tweet = @tweets.each do |tweet| %> @<%= tweet.user.screen_name %&g

出于某种原因,下面else语句中的tweet重复出现,我不明白为什么

如果tweet包含该短语,他们将收到编辑的div。如果tweet不包含该短语,他们应该有常规文本。但是,如果推文中没有包含该短语,那么出于某种原因,这些推文会出现两次

这与循环的设置方式有关吗

<section id="tweets">
 <ul>
<% tweet = @tweets.each do |tweet| %>
@<%= tweet.user.screen_name %>
<%= image_tag(tweet.user.profile_image_url) %>

    <% current_user.blockedshows.each do |blockedshow| %>
        <% blockedshow.phrases.each do |phrase| %> </br>
            <% if tweet.text.include?(phrase.text)%>
                <li><%= link_to check_if_redacted(tweet.text), "https://www.twitter.com/#{tweet.user.screen_name}" %></li>
            <% else %>
                <li><%= link_to tweet.text, "https://www.twitter.com/#{tweet.user.screen_name}" %></li>

        <% end %>
    <% end %>
<% end %>

    @


内部循环对每个
blockedshow
中的每个编辑短语执行一次,这将复制每个短语的tweet输出。尝试使用
any?
一次根据所有短语检查tweet,并根据该结果发出正确的

<% if current_user.blockedshows.flat_map(&:phrases).flatten.any? { |phrase| tweet.text.include? phrase.text } %>
  <!-- Tweet contains at least one blocked phrase. -->
  <li><%= link_to check_if_redacted(tweet.text), "https://www.twitter.com/#{tweet.user.screen_name}" %></li>
<% else %>
  <!-- Tweet contains no blocked phrases. -->
  <li><%= link_to tweet.text, "https://www.twitter.com/#{tweet.user.screen_name}" %></li>
<% end %>
然后更改视图中的
(如果
):

<% if is_redacted? tweet %>


谢谢,我输入了你的代码,但不幸的是,它仍在复制,现在用于有阻止短语的推文和没有阻止短语的推文。真的吗?每个
tweet
只应遵循
的一个分支。
@tweets
收藏中可能有重复的吗?啊,没关系。在测试新的if语句时,忘记取出我以前的blockedshows块。现在可以了。非常感谢!真的很难弄明白这一点。
<% if is_redacted? tweet %>