現在,我試圖在測驗結束時顯示所有用戶在特定測驗中得分情況的記分板。要做到這一點,我打電話索引和顯示的用戶名,類別和評分:從Ruby on Rails中的表中調用特定對象
<% @participations.each_with_index do |participation, index| %>
<tr>
<td>#<%= index + 1 %></td>
<td><%= participation.user.username %></td>
<td><%= participation.category %></td>
<td><%= participation.score %></td>
</tr>
<% end %>
通過調用雖然指數,它顯示在參與模型中的所有得分。例如,如果我有三個測驗類別:歷史,體育和商業,它將顯示此表中所有三個類別的分數。
爲了解決這個問題,我相信我需要調用一個特定的對象 - 在本例中是「歷史記錄」類別列 - 以過濾記分板表以獲得該測驗的分數。這可能通過改變索引查詢?
側面說明:參股表看起來像這樣在遷移後:
class CreateParticipations < ActiveRecord::Migration
def change
create_table :participations do |t|
t.references :user
t.string :category
t.boolean :finished, default: false
t.integer :current_question_index, default: 0
t.integer :score, default: 0
t.timestamps
end
end
end
記分牌控制器:
class ScoreboardController < ApplicationController
def index
@participations = Participation.where(finished: true).order(score: :desc)
end
end
請用相關的控制器代碼更新問題。假設您通過url參數中的類別 – Kkulikovskis
Good catch @Kkulikovskis,請嘗試將控制器代碼更改爲'@participations = Participation.where(category:params [:category])'。用控制器代碼更新op。 – darkginger