如果可能,一些指导?克隆记录

时间:2012-02-10 12:33:56

标签: ruby-on-rails-3

RoR非常新,我正在开发一个音乐应用程序,其中一个版本可以有很多产品。到目前为止,我一直在努力获得主要的“发布”级别,其中“产品”变体级别和“跟踪”级别低于该级别。

我现在认为这可能不是最佳方法,我现在正在考虑一种更简单的单表方法,我可以克隆条目来创建产品变体。 (我的初始方法在导入当前存储在单个excel表中的近10,000行的目录方面存在一些严重问题。)

在我看来,要求如下:

  • 创建记录(这很容易)
  • 创建任何记录的克隆(以及它的跟踪列表)减去Cat_No / Barcode等唯一字段,并在某处同时创建关联,以便在发布视图,管理销售报告等中组合变体。
  • 能够更新某些常见字段,如艺术家,标题,描述(以避免编辑每个克隆)
  • 能够更新/覆盖某些克隆字段,这些字段在大多数情况下会相同,但有时可能会有所不同;例如发布日期。

任何提供的指导都会受到非常感谢。

提前致谢, 莱恩

1 个答案:

答案 0 :(得分:0)

我认为应该在要克隆的模型中实现此功能,并且应该在内部应用您描述的逻辑。我不明白你在某处同时创建关联意味着什么,所以变体可以在发布视图中组合....,所以我没有回答。

例如:

def clone(new_attributes = {})
    source_attributes = self.attributes
    source_attributes.delete :cat_no #unique attributes
    source_attributes.delete :barcode 
    merged_attributes = source_attributes.merge new_attributes 
    MyModel.new(merged_attributes);      

end

def clone!(new_attributes = {})
    copy = self.clone(new_attributes)
    copy.save!
    copy.reload
    copy
end