2009-06-03 56 views
0

我想调用InvoicingAndDelivery.report_lines,然后给我一个这些结果的数组,但它不起作用。有任何想法吗?如何在rails中初始化自己的类?

class InvoicingAndDelivery < Report 
    include DateExtentions 
    attr_accessor :report_lines, :tba_line, :sum_line 

    def initialize(part_or_service_ids, start_date, to_date) 

    # @report_lines = [] 

    number_of_months(start_date,to_date).times do |i| 
     start_date = start_date + i.months 
     l = InvoicingAndDeliveryReport.new 
     l.month = start_date.strftime("%m/%Y") 
     l.work_profile = WorkProfileLine.delivery_amount_for_serivces_in(part_or_service_ids, start_date) 
     l.forecast_delivery = LineItem.forecast_delivery_amount_for_services_in(part_or_service_ids, start_date) 
     l.invoicing = InvoiceLine.invoices_total_for_services_in(part_or_service_ids, start_date) 
     l.projected_invoices = InvoiceLine.projected_invoice_total_for_services_in(part_or_service_ids, start_date) 
     l.costs = LineItem.costs_total_for_services_in(part_or_service_ids, start_date) 
     l.gross_profit = l.invoicing - l.costs 
     l.opportunities = LineItem.oportunities_value_for_services_in(part_or_service_ids, start_date) 
     # @report_lines<< l 
    end 

    @tba_line = InvoiceLine.service_type(@part_or_service).tba_lines.sum("invoice_lines.sell_price * invoice_lines.quantity").to_f 
    @sum_line = get_sum_line 
    end 

回答

1

什么是报告?

你有可能重写了你不应该拥有的东西...需要在初始化时调用super,或者如前所述,使其成为回调。

+0

我真的需要阅读一些关于如何使用抽象类以及如何使用超级的书。 感谢您的回答。 – 2009-06-03 21:18:46

1

如果InvoicingAndDeliveryActiveRecord::Base下降,你shouldn't override initialize。而是把这个代码放在after_initialize

+0

谢谢,我没有使用这个类作为ActiveRecord,但感谢提示无论如何。 – 2009-06-03 21:17:21