0

フォームに 5 つの選択ボックスがあります。ユーザーはそれらを使用して 1 から 5 までのメモを選択できます。selects punctuality = 5 Attention = 3 からこれらの選択したメモを取得したいと考えています。. 平均を計算し、データベースに保存します。モデルでメソッドを作成し、params ハッシュにアクセスする必要がありますか? または params ハッシュはコントローラーでのみ使用できますか?

4

1 に答える 1

0

モデルのパラメーターにアクセスできます。ただし、通常、パラメーターはコントローラーでアクセスされます。問題を解決するには:

まず、平均を保存する列を作成します。テーブルの名前は次のようになりますgrades

# generate migration file
rails g migration add_average_to_grades average:float
# update your database
rake db:migrate

次に、モデルでコールバックを使用して平均を計算します。

before_save :set_average

def set_average
  self.average = [punctuality, attention ... ].sum / [punctuality, attention ...].size
end

3 番目に、コントローラーは次のようにそのままにしておく必要があります。

def create
  @grade = Grade.new params[:grade]

  if @grade.save
    # handle success
  else
    # handle grade not saved
  end
end
于 2013-07-17T02:27:52.513 に答える