需要批次和库存产品的库存报告

时间:2015-01-22 18:33:59

标签: ruby-on-rails ruby

我正在帮助拥有现有rails应用的人。我想知道如何处理具体的事情。我需要一份完整的报告(库存报告),以显示特定父级的完整历史记录。然后我想在报告/库存页面上显示结果。我在开发中使用sqlite3,在生产中使用mysql2,但我不知道该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您如何记录历史记录?它在相关的表格中吗?在过去,我使用相关的“历史”表来记录记录的创建和更新 - 这为相关记录提供了一个很好的事件时间表,并且可以通过关系调用,即:

型号:

# class whose history you are tracking
class Record < ActiveRecord::Base
    has_many :logs
end

# class where you're storing the history log entries
class Log < ActiveRecord::Base
    belongs_to :record
end

控制器:

class RecordController < ApplicationController
    include RecordFactory
    ...
    def create
        if @record.create_new_record(record_params) # calls the factory
            ...
        end
    end
    def update
        if @record.update_existing_record(record_params) # calls the factory
            ...
        end
    end
    ...
end 

工厂

class RecordFactory
    def create_new_record(record_params)
        Record.create!(record_params).tap do |record|
            Log.create(...)
        end
    end

    def update_existing_record(record_params)
        Record.update_attr!(record_params).tap do |record|
            Log.create(...)
        end
    end
end

显示时调用关系的代码:

record = Record.last #returns last Record created
record.logs #returns logs for record