我有一个非常简单的问题,但我想知道这样做的独特方式。我有一个名为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,...]。
请在我的视图文件中帮助如何处理这个问题,我在其中添加了表格的序列号。
答案 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>