0

我有一个非常简单的问题,但我想知道这样做的独特方式。我有一个模型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,...]。

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

4

3 回答 3

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
于 2013-06-04T09:04:23.840 回答
0

你在找这个吗?:

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

@ids = []
@employee.each do |emp|
   @ids << emp.id
end
于 2013-06-04T09:17:04.750 回答
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>
于 2013-06-04T09:27:49.667 回答