0

我的表单中有 5 个选择框。用户可以使用它们从 1 到 5 中选择一个注释。我想从选择 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

第三,您的控制器应该保持不变,例如:

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 回答