2013-12-23 69 views
1

我有問題獲得淨薪水值。我有teacher_payslip模型。爲了計算淨薪水,我寫了回調。如何從數據庫中獲得淨工資值4

在TeacherPayslip.rb

#callbacks     
    after_create :net_salary 

    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 
     #raise @netsalary.inspect 
     @a = TeacherPayslip.find(@teacher_id) 
     #raise @a.inspect 
     @a.update_attributes(:net_salary => @netsalary) 
    end 

的net_salary值在TeacherPayslip模型已更新。

在Rails控制檯,我嘗試過的一些代碼

TeacherPayslip.last.net_salary 

顯示真正的價值,而不是net_salary值

我不知道,爲什麼這個查詢顯示了真正的價值。請幫助我.. 。

screenshot of rails console

+0

小費。對於下一個,請不要放置控制檯的屏幕截圖,而是複製'n將控制檯粘貼到該問題。閱讀起來要容易得多(我幾乎看不到角色),它可以被編輯,很輕便,可以在移動設備上使用,甚至比保存文件花費更少的時間,上傳它......所有的好處 –

回答

-1

用戶它

TeacherPayslip.last.net_salary 
3

這是一個naming collision。你正在覆蓋net_salary方法。 true的返回值是update_attributes的返回值。

要解決此問題,請重命名您的方法並將回調重命名爲set_net_salary。

+0

非常感謝。 – user2310209