我的表单中有5个选择框。 用户可以使用它们从1到5中选择一个音符。 我想从选择中获取这些选择的注释 守时= 5 注意= 3 。 。 计算平均值并将其保存在数据库中。 我是否必须在模型中创建方法并访问params哈希?或params散列仅在控制器中可用?
答案 0 :(得分:0)
您可以访问模型中的参数。但通常在控制器中访问params。要解决您的问题:
首先,创建一个列以保存平均值,我假设您的表名为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