2016-03-01 28 views
0

我有3個表格,事件,遊戲,事件遊戲(加入其他人)。我正在嘗試創建一個列出每個事件的頁面,每場比賽將在活動中進行。該頁面當前正在工作,但正在爲HTML表格上的每一行創建一個新的DB查詢。我從控制器發送@events = Event.all並以這種方式訪問​​信息。如何在許多對象的一側按列進行分組,並且能夠通過另一側的匹配對每個對象進行分組。

<% @events.each do |event| %> 
    <tr> 
     <td><a href="/events/<%= event.id %>"><%= event.title %></a></td> 
     <td><a href="https://stackoverflow.com/users/<%= event.user.id %>"><%= event.user.username %></a></td> 
     <td><%= event.description %></td> 
     <td> 
     <% event.games.each do |game| %> 
      <a href='/games/<%= game.id %>'><%= game.name %></a> 
     <% end %> 
     </td> 

我試圖通過創建一個包含所有信息的新查詢來更改從控制器發送的內容。這並不是我的工作方式,問題是當我做@ events.each事件會重複,但是很多遊戲都會在那裏。我試過了,但顯然我的分組不正確。我將如何進行分組,以便每個事件ID只有1個事件,同時還能夠遍歷附加到事件的遊戲?

回答

0

在你的控制,而不是@events = Event.all,請嘗試以下操作:

@events = Event.inclues(:games).all 

參考ActiveRecord::QueryMethods#includes獲取更多信息。

此外,限制您要加載的@events的數量總是一個好主意,通過where條件或至少通過分頁。

相關問題