0
我的表单中有5个选择框。 用户可以使用它们从1到5中选择一个音符。 我希望从选择 准时= 5 注意= 3 中获得这些选定的音符。 。 计算平均值并将其保存在数据库中。 我是否必须在模型中创建一个方法并访问params散列?或参数散列仅在控制器中可用?Rails如何计算几个选择框的平均值
我的表单中有5个选择框。 用户可以使用它们从1到5中选择一个音符。 我希望从选择 准时= 5 注意= 3 中获得这些选定的音符。 。 计算平均值并将其保存在数据库中。 我是否必须在模型中创建一个方法并访问params散列?或参数散列仅在控制器中可用?Rails如何计算几个选择框的平均值
您可以访问模型中的参数。但通常在控制器中访问参数。有一个回调
# generate migration file
rails g migration add_average_to_grades average:float
# update your database
rake db:migrate
其次,在你的模型计算平均:解决你的问题:
首先,创建一个列保存平均,我认为你的表称为grades
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
完美!谢谢! –