嘿,我正在研究Ruby on Rails上的所有人使用Rile 3.2的Agile Web Development这本书,我遇到了一个我不知道如何修复的问题。我在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 \ n CoffeeScript是正确的JavaScript。 ...&#34;,image_url:&#34; cs.jpg&#34;,价格:#,created_at:&#34; 2013-06-22 23:34:33&#34;,updated_at:&#34 ; 2013-06-22 23:34:33&#34;&gt;,#\ n Ruby是增长最快,最快的...&#34;,image_url:&#34; ruby.jpg&#34;,价格:#,created_at:&#34; 2013-06-22 23:34:33&#34;,updated_at:&#34; 2013-06-22 23:34:33&#34;&gt;,#\ n Rails测试处方是......&#34;,image_url:&#34; rtp.jpg&#34;,价格:#,created_at:&#34; 2013-06-22 23:34: 33&#34;,updated_at:&#34; 2013-06-22 23:34:33&#34;&gt;]
我不确定这是否是开发环境中的标准Rails输出。我的代码有什么不对的地方吗?我知道这可能是一个简单的问题,所以任何帮助都表示赞赏。希望我在说明中包含足够的信息,以便其他具有相同问题的人可以轻松找到解决方案。
答案 0 :(得分:1)
问题出在这一行:
<%= @products.each do |product| %>
您不需要=
,因为您只是迭代产品,而不是尝试从此语句生成输出到生成的HTML中。使用=
,您基本上可以获得@products表的Ruby转储(您已经要求Ruby获取@products.each
子句的输出并将其注入到<table>
之间的HTML中。你的第一个<tr...>
)。相反,使用:
<% @products.each do |product| %>