Ruby on Rails - 通过遍历实例变量在 html.erb table 中创建行

Ruby on Rails - Creating rows in an html.erb table by looping over instance variable

我有一个实例变量@referrals,它包含一个人所做的推荐的名称。我现在需要创建一个 table 将所有这些推荐显示为行。我在 html.erb 文件中尝试了以下代码:

<table style="border:1px solid black;margin-left:auto;margin-right:auto;">
      <th> Referral Emails </th>
      <% @referrals.each do |referrals| %>
        <tr> referrals </tr>
     <%end %>
</table>

<table style="border:1px solid black;margin-left:auto;margin-right:auto;">
      <th> Referral Emails </th>
      <% @referrals.each do |referrals| %>
        <%= <tr> referrals </tr> %>
     <%end %>
</table>

两者都显示错误。

我是 Ruby 的新手,非常感谢您提供正确的 Ruby 代码帮助。提前致谢。

编辑:@mu 建议的代码更改太短。

默认情况下,在 ERB 中,代码块包含在 <%%> 分隔符中,如果您想要代码块 运行 的结果,请使用 [=13] =] 符号,例如 <%= 'Hel' + 'lo' %>, world 会输出“Hello, world”。

.each 迭代的每个成员都在竖线符号之间命名,因此这就是您在块内引用的内容。

另外 table 行需要有 table 数据,或行 <tr> 标签中的 <td> 标签。

假设 @referrals 是一个字符串列表,下面是对您有用的内容:

<table style="border:1px solid black;margin-left:auto;margin-right:auto;">
  <tr> <th> Referral Emails </th> </tr>
  <% @referrals.each do |referral| %>
    <tr> <td> <%= referral %> </td> </tr>
  <% end %>
</table>