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>

<%= は、評価が必要な式にのみ使用してください。

埋め込まれたルビーを理解するには、このリンクを参照して ください http://www.ruby-doc.org/docs/ProgrammingRuby/html/web.html

于 2012-10-31T20:24:58.020 に答える
1

erbタグの式は<%#code%>
です。そのタグも印刷する場合は、<%= #code%>を適用します。
つまり、「=」記号を1つだけ使用し、それも左側に使用します。
また、各イテレータの行には何も出力できないため、その行に「=」記号はありません。これは、「end」を含むタグの場合と同様です。

したがって、コードは次のようになります。

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

于 2012-10-31T21:53:44.547 に答える