我是教师工资单控制器,使用对象获取 net_salary 时显示布尔值而不是它们的值。
def payslip_report
if params[:teacher_id] and params[:month_year].present?
@month_and_year = params[:month_year].gsub(' ','')
@teacher_data = TeacherPayslip.where(:teacher_id => params[:teacher_id])
@matched_records = @teacher_data.select{|t| t.salary_date.strftime("%B%Y") == @month_and_year}
#returns an array of TeacherPayslip records with matching month and year
if @matched_records.blank?
raise "2"
else
@report = @matched_records.first
raise @report.net_salary.inspect
end
end
结尾
在检查 @report.net_salary 时显示 true 。@report 包含基本、pf、da、net_salary 值。@pf = @report.pf 表示,我会得到 pf 值。但是当尝试获取 net_salary 时显示布尔值而不是浮点值。
raise @report.inspect 包含
这是教师工资单模型
class TeacherPayslip < ActiveRecord::Base
attr_accessible :teacher_id,:salary_date,:hra,:bonus,:pf,:da,
:special_allowance,:basic,:net_salary,:month_year
#associations
belongs_to :teacher
#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
@a = TeacherPayslip.find(@teacher_id)
#raise @a.inspect
@a.update_attribute('net_salary',@netsalary)
end
end