0

我有模型级别的代码来更新教师工资单的属性。

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。

4

1 回答 1

-1

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

你应该使用:

@a.update_attributes(net_salary: @netsalary)
@a.net_salary # will hold the new value
于 2013-10-14T07:24:40.507 回答