2014-12-11 50 views
0

我有一個問題,需要一個簡單的方法來排序的數組,並在視圖中紅寶石排序顯示的嵌套陣列

l = Localfeed.select(:id, :locality, :city) 

=> #<ActiveRecord::Relation [#<Localfeed id: 94, city: "Cardiff", locality: "Splott">, 
#<Localfeed id: 95, city: "newport", locality: "allt-yr-yn">, #<Localfeed id: 29, city 
: "Cardiff", locality: "splott">, #<Localfeed id: 30, city: "Cardiff", locality: "Adams 
down">, #<Localfeed id: 31, city: "Cardiff", locality: "Cathays">]> 

使用它,所以我想是這樣:

@k = l.group_by {|k| k[:city] } 
=> [["newport", [#<Localfeed id: 95, city: "newport", locality: "allt-yr-yn">]], ["Car 
diff", [#<Localfeed id: 94, city: "Cardiff", locality: "Splott">, #<Localfeed id: 29, c 
ity: "Cardiff", locality: "splott">, #<Localfeed id: 30, city: "Cardiff", locality: "Ad 
amsdown">, #<Localfeed id: 31, city: "Cardiff", locality: "Cathays">]]] 

在查看:

  <% @localfeeds.each do |f, t| %> 
      <p>city</p> 
      <%= f%> 
      <p>locality</p> 
      <% t.each do |y| %> 
      <%= y.locality%> 
      <%end%> 

想法將不勝感激。在意見

的最終結果應該是

City: 
link to locality 
link to locality 
City: 
link to locality 
link to locality 

工作,謝謝

回答

1

group_by功能,每個哈希值是Localfeed實例,因此,如果你想打印每個地區值,用途:

l = Localfeed.select(:id, :locality, :city) 
k = l.group_by {|k| k[:city] } 
k.each do |ct, lc| 
    puts "#{ct}:" ## print city 
    lc.each {|l| puts "-- #{l.locality}"} ## print locality in this city group 
end 
+0

對不起,非常感謝,那工作:) – Richardlonesteen 2014-12-11 02:42:53