2013-07-17 71 views
0

我的表单中有5个选择框。 用户可以使用它们从1到5中选择一个音符。 我希望从选择 准时= 5 注意= 3 中获得这些选定的音符。 。 计算平均值并将其保存在数据库中。 我是否必须在模型中创建一个方法并访问params散列?或参数散列仅在控制器中可用?Rails如何计算几个选择框的平均值

回答

0

您可以访问模型中的参数。但通常在控制器中访问参数。有一个回调

# 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 
+0

完美!谢谢! –