2016-02-28 118 views
0

我正在制作工资薪金系​​统。我只需要选择一个月,一年,按“创造就业”,并为所有的老师未初始化的常量Payroll_Manager :: Teachers

mockup

创造就业我创建的方法payroll_controller.rb“创造”:

Payroll_Manager.new(params[:month], params[:year]).crear_liquidaciones_del_periodo() 

的Payroll_Manager是在文件app /佣工/ payroll_manager.rb

class Payroll_Manager < PayrollsController 

    def initialize(month, year) 
    @month = month 
    @year = year 
    end 

    def crear_liquidaciones_del_periodo 
    Teachers.each do |t| 
     t.payrolls.create(@month, @year) 
    end 
    end 
end 

最后,我有CODEL payroll.rb

class Payroll < ActiveRecord::Base 
    belongs_to :teacher 
    has_many :payroll_lines 

    def period 
    period = month + " " + year 
    end 

    validates :month, presence: true 
    validates :year, presence: true 

    class Payroll < ActiveRecord::Base 
    #gross_total, retention_total, neto_total 
    before_save :calculate_payroll 

    private 
    def calculate_payroll 
     calculate_gross_total 
     calculate_retention_total 
     calculate_net_total 
    end 

    def calculate_gross_total 
     self.gross_total = 0 
     ## Concepto.where(type: 1) 
     haberes = Concepts.all.select{ |c| c.type == 1 } 

     haberes.each do |h| 
     parametros_para_linea = {concept_id: h.id, subtotal: h.amount} 
     self.payroll_line.create(parametros_para_linea) 
     self.gross_total += h.amount 
     end 
    end 

    def calculate_retention_total 
     self.retention_total = 0 
     ## Concepto.where(type: 0) 
     retencion = Concepts.all.select{ |c| c.type == 0 } 

     retencion.each do |r| 
     parametros_para_linea = {concept_id: h.id, subtotal: h.amount} 
     self.payroll_line.create(parametros_para_linea) 
     self.retention_total += r.amount 
     end 
    end 

    def calculate_net_total 
     self.net_total = gross_total - retention_total 
    end 
    end 
end 

...当我点击 “创建工资单” 按钮,我有错误:

uninitialized constant Payroll_Manager::Teachers

enter image description here

请帮助我。

+0

你为什么在payroll.rb中两次使用'class Payroll'类。它只需要一次。 – Sravan

+0

您的帮助器继承自PayrollsController,并且您尝试从PayrollsController本身内部实例化,这将永远不会工作。几个问题:一个帮手应该是一个模块,而不是一个班级;你不应该混合使用蛇和骆驼案例(即将Payroll_Manager重命名为PayrollManager),教师不存在,很可能你的意思是教师。 – taglia

回答

0

您在payroll_manager.rb中的类定义应该是PayrollManager,而不是Payroll_Manager。

相关问题