Как инициализировать собственный класс в рельсах? - PullRequest
0 голосов
/ 03 июня 2009

Я хочу вызвать 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

Ответы [ 2 ]

1 голос
/ 03 июня 2009

Что такое отчет?

Скорее всего, вы переписали что-то, чего у вас не должно быть ... Нужно вызвать super при инициализации или, как упоминалось ранее, сделать это обратным вызовом.

1 голос
/ 03 июня 2009

Если InvoicingAndDelivery происходит от ActiveRecord::Base, вы не должны переопределять initialize. Вместо этого введите этот код в after_initialize.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...