2016-11-03 11 views
0

この質問はこれまでthis questionに関連していました。Railsグループと最も古い最新の値を表示

データベーステーブルサーバ

日、SERVER_ID、サーバー名、私のコントローラでこれを使用することによりserver_status

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

私は、最新のサーバのステータスを表示することができます私の見解:

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

ビューで最初のステータスも同じテーブルに表示するにはどうすればよいですか?基本的に反対の方法で日付で注文します。

私は、この文脈では実際には意味をなさないことを知っていますが、最初の質問では例を使って明確にしています。私は、これはあなたがこれを使用すると、これはまたあなたのために動作しますテーブル

答えて

0

ありがとう:

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

ご回答ありがとうございます。この作業は最初の価値を示すことになります。しかし、最初と最後を別々の列に表示するには、私は自分の見解に何を入れていますか? – Catmal

+0

更新されました。ループを使用する理由はありません。単に 'td'要素を入れてください。 –

+0

すべての行で同じ値が表示されると思います。異なるサーバーがあるため動作しません。または私は何かを逃していますか? – Catmal

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

これをどのように実装すればいいですか?私の見解?私は試しましたが、私は2つのループを実行する問題があります。あなたがそれが助けになることを示すことができたら.. – Catmal

関連する問題