在 Rails erb 中使用变量

con*_*rio 2 ruby-on-rails erb

我来自 .net c# razor 背景,所以我想知道如何在 Rails .erb 视图中执行以下操作。

剃刀:

@{var i = 0}
<table>
     <tr><th>name</th></tr>
     @foreach item in collection{
        <tr>
             <td>@i++.@item.name</td>
        </tr>
     }
</table>
Run Code Online (Sandbox Code Playgroud)

我想要一种在视图中使用迭代变量的方法。Rails erb 文件有能力做到这一点吗?我可以在哪里在视图中创建变量并与其交互?

提前致谢。

Dav*_*ton 6

文档几乎回答了这个问题: https: //apidock.com/ruby/ERB

虽然我不会那样做,而是:

<table>
  <tr><th>name</th></tr>

  <% collection.each_with_index do |item, i| %>
    <tr>
      <td>
        <%= i %>. <%= item %>
      </td>
    </tr>
  <% end %>
</table>
Run Code Online (Sandbox Code Playgroud)

要回答您的特定但非规范的 Ruby 问题,当然:

<% i = 0 %>
<table>
  <% collection.each do |item| %>
    <!-- Etc -->
    <%= i += 1 %>
Run Code Online (Sandbox Code Playgroud)

(我不清楚您是否想要基于零或基于一的索引;根据需要调整所有示例。)