中間テストと最終テストの点数を成績に計算したいと思います。例えば:
mid test = 80 , final test = 80
(midtest + finaltest)/2 >=80
grade = "A"
ビューでif条件を実行し、データベースに挿入することは可能ですか?何かのようなもの:
if (midtest + finaltest) / 2 >= 80
grade = "A"
elsif (midtest + finaltest)/2 >= 70 and < 80
grade = "B"
elsif (midtest + finaltest) /2 >= 60 and < 70
grade = "C"
そのため、ビューでは成績のforは必要なくtext_field
、計算はデータベースに自動的に挿入されます。
これはソリューション
コントローラーです
def create
@nilai = Nilai.new(params[:nilai])
@nilai.get_grade
respond_to do |format|
if @nilai.save
format.html { redirect_to @nilai, notice: 'Nilai was successfully created.' }
format.json { render json: @nilai, status: :created, location: @nilai }
else
format.html { render action: "new" }
format.json { render json: @nilai.errors, status: :unprocessable_entity }
end
end
end
モデル
class Nilai < ActiveRecord::Base
attr_accessible :grade, :id_makul, :id_mhs, :id_nilai, :uas, :uts
def get_grade
@calculate = (self.uas + self.uts)/2
if @calculate >= 80
self.grade = "A"
elsif @calculate >=70 and @calculate < 80
self.grade = "B"
elsif @calculate >=60 and @calculate <70
self.grade = "C"
elsif @calculate >=50 and @calculate <60
self.grade = "D"
else
self.grade = "E"
end
end
end