2011-01-03 2 views
3

Как я могу и возможно ли клонировать записи и связанные записи?Rails Clone records

Пример.

Категория
| Продукт
_ __
| Вариант продукта

Итак, когда я нажимаю кнопку, категория, продукты и варианты продукта клонируются/копируются.

Благодаря ...

ответ

4

Вы должны переписать #clone так, что все ассоциации также клонировали, как

class Category < ActiveRecord::Base 
    has_many :products 

    alias_method :original_clone, clone 

    def clone 
    category = self.original_clone 
    category.products = self.products.clone 
    end 
end 

... помните, чтобы сделать то же самое о продукте и ProductVariant.

+0

Большое спасибо: O) – andkjaer

0

Я думаю, вы должны начать с использованием метода «клон». Ваша проблема, если я правильно понял, это то, что вам нужен рекурсивный клон. Честно говоря, я не знаю, существует ли это общее решение, но я думаю, что вы могли бы клонировать вас отцом/сыновьями. Возможно, это не изящное решение, но оно должно работать.