Update_attribute在rails 4中不起作用

时间:2013-10-14 07:15:13

标签: ruby-on-rails

我在模型级别有​​代码将属性更新为TeacherPayslip。

TeacherPayslip.rb(模特)

def net_salary   
    @teacher_id = self.id
    @da  =  (self.basic * self.da)/100 
    @hra = (self.basic * self.hra)/100 
    @gs  = @da + @hra + self.basic
    @pf =  (@gs * self.pf)/100
    @netsalary = @gs - @pf + self.special_allowance + self.bonus

    @a = TeacherPayslip.find(@teacher_id)
    #raise @a.inspect

    raise @a.update_attribute('net_salary',@netsalary).inspect
   end

这里,当我举起@netsalary显示像9789.但更新后(@ a.update_attribute('net_salary',@ netsalary)net_salary显示真值而不是9789。

1 个答案:

答案 0 :(得分:-1)

update_attribute返回布尔值(truefalse)。此外,使用update_attribute代替update_attributes将导致回调不被触发。

您应该使用:

@a.update_attributes(net_salary: @netsalary)
@a.net_salary # will hold the new value