0

大家好,我正在通过 Rails 3.2 的敏捷 Web 开发一书学习 Ruby on Rails,我遇到了一个我不知道如何解决的问题。我在 app/views/products/index.html.erb 中使用以下代码创建了一个产品视图

    <h1>Listing products</h1>

<table>
<%= @products.each do |product| %>
  <tr class="<%= cycle('list_line_odd', 'list_line_even') %>">

    <td>
      <%= image_tag(product.image_url, class: 'list_image') %>
    </td>

    <td class="list_description">
      <dl>
        <dt><%= product.title %></dt>
        <dd><%= truncate(strip_tags(product.description),
              length: 80) %></dd>
      </dl>  
    </td>

    <td class="list_actions"> 
      <%= link_to 'Show', product %><br/>
      <%= link_to 'Edit', edit_product_path(product) %><br/>
      <%= link_to 'Destroy', product, method: :delete,
                    data: { confirm: 'Are you sure?' } %>
    </td>
  </tr>
  <% end %>
</table>

<br />

<%= link_to 'New product', new_product_path %>

页面创建的这个视图可以正确显示所有内容,但会在页面顶部强制添加额外的描述:

[#\n CoffeeScript 是正确的 JavaScript。...”,image_url:“cs.jpg”,价格:#,created_at:“2013-06-22 23:34:33”,updated_at:“2013-06-22 23:34:33”>,#\ n Ruby 是增长最快和最前...", image_url: "ruby.jpg", price: #, created_at: "2013-06-22 23:34:33", updated_at: "2013-06-22 23 :34:33">, #\n Rails Test Prescriptions is a ...", image_url: "rtp.jpg", price: #, created_at: "2013-06-22 23:34:33", updated_at: " 2013-06-22 23:34:33">]

我不确定这是否是开发环境中的标准 Rails 输出。我的代码有什么不正确的地方吗?我知道这可能是一个简单的问题,所以任何帮助表示赞赏。希望我在描述中包含了足够的信息,以便其他有相同问题的人可以轻松找到解决方案。

4

1 回答 1

1

问题出在这一行:

<%= @products.each do |product| %>

您不需要,=因为您只是在迭代产品,而不是尝试将此语句的输出生成到生成的 HTML 中。随着=您基本上得到@products 表的Ruby 转储(您已要求Ruby 获取@products.each子句的输出并将其注入到<table>您的第一个之间的HTML 中<tr...>)。相反,使用:

<% @products.each do |product| %>
于 2013-06-23T00:44:51.443 回答