我的表单中有 5 个选择框。用户可以使用它们从 1 到 5 中选择一个注释。我想从选择 punctuality = 5 attention = 3 中获取这些选择的注释。. 计算平均值并将其保存在数据库中。我是否必须在模型中创建一个方法并访问 params 哈希?或 params 哈希仅在控制器中可用?
问问题
166 次
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 回答