首页 > 解决方案 > 每个轨道的奇怪输出

问题描述

Rails 的每个 do 方法都表现得很奇怪,我不知道为什么。

控制器

def index
  @fabric_guides = FabricGuide.with_attached_image.all.order(:name)
end

index.html.erb

<div class="guide-items">
  <%= @fabric_guides.each do |fabric| %>
    <div class="guide-container">
      <%= link_to fabric_guide_path(slug: fabric.slug) do %>
        <%= image_tag fabric.image if fabric.image.attached? %>
      <% end %>

      <div class="guide-info">
        <p class="g-name">
          <%= link_to fabric.name,
          fabric_guide_path(slug: fabric.slug) %>
        </p>
      </div>
    </div>
  <% end %>
</div>

我有两个 FabricGuide 记录,所以我希望有两个“指南容器”,但我得到了三个。或者更准确地说,我得到了两个指南容器和第三个文本块,其中包含最后一个 FabricGuide 记录中的所有内容。

dom

我对文章的设置几乎相同,从未遇到过这个问题。如果需要,我很乐意分享更多信息。谢谢!

标签: ruby-on-rails

解决方案


=从您的每个视图代码循环中删除等号,如下所示:-

<% @fabric_guides.each do |fabric| %>
 ...
 ...
<% end %>

<%= @fabric_guides.each do |fabric| %>在视图中使用了它,这就是它在 DOM 中显示所有记录的原因。

erb 标签的表达式<% %> 现在是如果我们也想打印该标签,那么我们应用<%= %>


推荐阅读