学生、成績などの列と、それぞれの日付(created_atの日付ではない)の列を含むテーブルがあります。私のモデルでは、学生は_多くのスコアを持ち、スコアは学生に属します_。ユーザーが生徒をクリックしたときに、[フィールド]列に入力された日付に基づいて、最新の成績と関連する日付のみを表示ページに表示したいと思います。
現在、私のショービューは次のようになっています。
<% @scores.each do |score| %>
<p>
<b>Grade:</b>
<%= score.grade %>
</p>
<p>
<b>Date:</b>
<%= score.fielded %>
</p>
<% end %>
私のStudentsコントローラーは次のようになります。
def show
@student = Student.find(params[:id])
@scores = @student.scores
respond_to do |format|
format.html # show.html.erb
format.json { render json: @student }
end
end
スコアデータベースには次のものが含まれています。
class CreateScores < ActiveRecord::Migration
def change
create_table :scores do |t|
t.string :student
t.integer :score
t.date :fielded
t.string :grade
t.integer :student_id
t.timestamps
end
end
end
現在、私が持っているコードは、その学生に関連するすべての成績と日付を示しています。ビューコードを変更しようとすると
@scores.each do |score|
に
@scores.order('fielded DESC') do |score|
結果は出ません。これだけでは問題が解決しないことはわかっていますが、なぜこれが機能しないのかわかりません。最終的には、最新の値のみを表示したいと思います。私はRailsの経験があまりないので、コードを進めたり変更したりする方法についての提案をいただければ幸いです。