在我的表中添加序列号

时间:2013-06-04 09:00:54

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个非常简单的问题,但我想知道这样做的独特方式。我有一个名为Employee的模型,我正在进行数据库查询以通过执行

来搜索活动用户
Employee.where(:status => "active")

现在我需要在表格中显示所有这些内容。一切运作良好,但我想序列化每个值,所以我到目前为止使用id,但是当我进行查询时

@id = Employee.where(:status => "active").collect{|a| a.id}

到db我得到id就像这个[2, 3, 4, 5, 8, 29, 30]但我更想要[1,2,3,4,5,6,...]。

请在我的视图文件中帮助如何处理这个问题,我在其中添加了表格的序列号。

3 个答案:

答案 0 :(得分:2)

在您的控制器/型号中

@employees = Employee.where(:status => "active")

在你看来

@employees.each_with_index do |emp,i|
# emp holds your employee object and i will hold the serial number which you can display
end

答案 1 :(得分:0)

你正在寻找这个吗?:

@employee = Employee.where(:status => "active").order('id ASC')

@ids = []
@employee.each do |emp|
   @ids << emp.id
end

答案 2 :(得分:0)

您可以创建一个局部变量并在循环中递增它。 或者在这种情况下,id是唯一的,你可以做

@ids = Employee.where(:status => "active").collect(&:id)

<table>
  <th> Sl no </th>
  <th> employee id </th>
  <% @ids.each do |id| %>
    <tr>
      <td>
        <%= @ids.index(id) + 1 %>
      </td>
    </tr>
    <tr>
     <td>
       <%= id %>
     </td>
    </tr>
  <% end %>
</table>