如何使用ERB创建一个表来显示我的Ruby类的所有实例?

时间:2014-03-18 13:37:39

标签: ruby erb

我的表格包含以下列:

<tr>
  <th>Number</th>
  <th>User</th>
  <th>Password</th>
  <th>UID</th>
  <th>GID</th>
  <th>GCOS</th>
  <th>Home Directory</th>
  <th>Login Shell</th>
</tr>

我有班级学生,看起来像这样:

class Student
  attr_accessor :user_name, :password, :uid, :gid,
                :gcos_field, :directory, :shell
  attr_reader :count

  def initialize(data)
    @user_name,@password,@uid,@gid,@gcos_field,@directory,@shell = data
    @@count = defined?(@@count) ? @@count += 1 : 1

  end
end

数组映射下有大约30个类的实例:

@students = datalines.map { |line| Student.new(line.chomp.split(":")) }

来自datalines数组的样本元素是:

dputnam:x:4185:208:Douglas Vernon Putnam:/users/dputnam:/bin/bash

我无法让@@计数正常运作。

我创建表的失败尝试使得所有学生名称(我的Ruby类偶然)显示水平而不是垂直:

<% @students.each do |parameters| %>
  <td><%= parameters.user_name %></td>
<% end %>

任何帮助将不胜感激! 如果有帮助,这里是输出的链接:http://hills.ccsf.edu/~wly3/cs132a/lab4.cgi

好的ERB模板(我认为这就是它)是因为它被请求了:

<h1>CS132A Lab 4</h1>
<br>
<br>
<table>

<tr>
  <th>Number</th>
  <th>User</th>
  <th>Password</th>
  <th>UID</th>
  <th>GID</th>
  <th>GCOS</th>
  <th>Home Directory</th>
  <th>Login Shell</th>
</tr>

<tr>
<% @students.each do |parameters| %>
  <td><%= parameters.user_name %></td>
<% end %>
</tr>

</table>


<% finish = Time.now %>
<h2>Elapsed time in seconds:<%= (finish.to_f - start.to_f).to_s %></h2>

1 个答案:

答案 0 :(得分:1)

您必须为每个学生生成一个新的<tr>

<% @students.each do |parameters| %>
  <tr>
    <td><%= parameters.user_name %></td>
  </tr>
<% end %>