2010-04-18 6 views
0

방대한 데이터 항목이있는 앱을 개발하고 있습니다. rate_per_sq_feet, start_date, end_date와 같은 attrs가있는 유사한 캠페인입니다. 즉 최대 날짜는 약 30 일입니다.이전 이전 연도의 데이터를 Rails에 저장 하시겠습니까?

캠페인이 완료되면 완료되고 다른 캠페인이 시작됩니다. 이제 캠페인을 보고서로 저장하는 방법이 혼란 스럽습니다. 제가 말하고자하는 것은 나중에 올 해 보고서처럼 행동 할 수있는 방식으로 저장하는 것입니다.

전년도 보고서가 저장되어있는 계정 연도와 비슷한 것으로 나중에 계산할 때 모든 알고리즘과 계산을 수행하지 않아야합니다. 고정 데이터 같은 것이 있습니까 ??

답변

0

캠페인 보고서를 데이터베이스 또는 파일 시스템에 저장할 수 있습니다. 보고서는 보관 된 캠페인에 대한 첫 번째 요청시 생성 될 수 있습니다.

class Campaign < ActiveRecord::Base 
    # Campaign model has an attribute called report_file 
    def report_file 
    return nil unless expired? 
    attributes['report_file'] ||= generate_report_file 
    end 

    def generate_report_file 
    return nil if attributes['report_file'] 
    # Generate the report using Prawn PDF OR wickedPDF etc. 
    # Update report_file attribute with the report file location 
    # Return the file location 
    end 
end 

class CampaignsController < ApplicationController 
    before_filter :check_expiry, :only => :show 
    def report 
    if @campaign.report_file 
     send_file(@campaign.report_file) 
    else 
     # handle error 
    end 
    end 
    def show 
    end 
    def check_expiry 
    @campaign = Campaign.find(params[:id]) 
    if @campaign.expired? 
     render :report 
    end 
    end 
end 
+0

큰 설명 주셔서 감사합니다. 나는 그것을 시험해보고 난 후에 되돌아 갈 것이다. – Autodidact

관련 문제