6

我有以下代码:

<tbody>
   <%= Item.each do |item|=%>
   <tr>
      <th><%= item.rev =%></th>      <=========
      <th><%= item.name =%></th>
   </tr>
   <%= end =%>
</tbody>

但是,我在指示的行上遇到语法错误。数据库中有数据(测试用例)。不知道我做错了什么。

4

2 回答 2

15

你的等号是错误的。尝试如下:

<tbody>
   <% Item.each do |item|%>
   <tr>
      <th><%= item.rev %></th>     
      <th><%= item.name %></th>
   </tr>
   <% end %>
</tbody>

<%= 应该只用于需要评估的表达式。

为了帮助理解嵌入式 ruby​​,请参阅此链接 http://www.ruby-doc.org/docs/ProgrammingRuby/html/web.html

于 2012-10-31T20:24:58.020 回答
1

erb 标签的表达式
现在是 <% #code %> 如果我们也想打印该标签,那么我们应用 <%= #code %>
即只使用一个'=' 符号并且在左侧也是如此。
同样在每个迭代器中,没有任何内容可以打印,因此该行中没有'='符号,与包含'end'的标签的情况类似。

因此你的代码应该看起来像

<tbody>
     <% Item.每个都做 |item| %>
          <tr>
               <th><%= item.rev %> </th>
               <th><%= item.name %> </th>
          </tr>
     <% end %>
</tbody>

于 2012-10-31T21:53:44.547 回答