2009-06-03 3 views
0

私はInvoicingAndDelivery.report_linesを呼び出し、その結果の配列を与えたいが、それは動作していない。何か案は?レールで自分のクラスを初期化するには?

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

抽象クラスの使い方やスーパーの使い方に関する本を読む必要があります。 あなたの答えをありがとう。 –

1

InvoicingAndDeliveryActiveRecord::Baseから下降した場合、shouldn't override initialize。代わりにこのコードをafter_initializeに入れてください。

+0

ありがとう、私はActiveRecordとしてこのクラスを使用していないが、とにかくヒントのおかげで。 –

関連する問題