ruby-on-rails - 每个轨道的奇怪输出
问题描述
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 记录中的所有内容。
我对文章的设置几乎相同,从未遇到过这个问题。如果需要,我很乐意分享更多信息。谢谢!
解决方案
请=
从您的每个视图代码循环中删除等号,如下所示:-
<% @fabric_guides.each do |fabric| %>
...
...
<% end %>
您<%= @fabric_guides.each do |fabric| %>
在视图中使用了它,这就是它在 DOM 中显示所有记录的原因。
erb 标签的表达式<% %>
现在是如果我们也想打印该标签,那么我们应用<%= %>
推荐阅读
- java - 作为 Gradlew 任务运行时,Mockito Spring 测试失败
- python - 在 Python 中避免全局变量
- javascript - 如何在 Ant Design Pro 中启用代码拆分?
- html - Insert full width block inside grid layout
- mongodb - 使用 MongoDB 删除过时的数据
- android - 无法从 onDataChange() 内部调用 publishProgress
- c# - 如何将 apose.cells 部署在无服务器环境中(Azure 应用服务)
- java - 如何从插入 SQL 数据库的 CSV 文件中删除双引号
- spring-mvc - Mokcito 没有模拟 DAO 层
- java - 将在 unix 中测试的 dockerfile 转换为 windows,RUN 命令由于权限被拒绝而失败