2016-11-03 46 views
0

此問題與this question有關。Rails組和顯示最舊和最新值

數據庫表服務器

日期,SERVER_ID,服務器名,server_status

通過我的控制器使用此:

@servers = Server.order(date: :desc).group(:server_id) 

我可以顯示最新的服務器狀態我的觀點與:

<td><%= server.server_status %></td> 

如何在同一張桌子上查看第一個狀態?基本上以相反的方式按日期排序。

我知道在這種情況下它並沒有真正的意義,但我在第一個問題中使用了這個例子來使它更清晰。

在此先感謝

回答

0

我想這應該做你問

#controller 
servers_acending = Server.order(date: :asc).group_by {|i| i.server_id} 
@first_last_pairs = servers_acending.map {|k, v| [v.first, v.last]} 

#your view 
<%@first_last_pairs.each do |pair|%> 
    <td><%= pair.first.server_name %></td> 
    <td><%= pair.first.server_status %></td> 
    <td><%= pair.last.server_name %></td> 
    <td><%= pair.last.server_status %></td> 
<%end%> 

這是你可以在表格中顯示

+0

感謝您的回答。這項工作顯示出第一個價值。但是,我認爲在分開的欄目中首先顯示和最後顯示的內容是什麼? – Catmal

+0

更新,沒有理由使用循環只是放置'td'元素 –

+0

我認爲在所有行中顯示相同的值。由於存在不同的服務器,這不起作用。或者我錯過了什麼? – Catmal

0

這第一個也會爲你工作:

@servers_latest = Server.all.group(:server_id).order(:date => :desc) 
@servers_oldest = Server.all.group(:server_id).order(:date => :asc) 
+0

如何實現在我的看法?我試過了,但我有問題要運行2個循環。如果你能證明它會有幫助.. – Catmal