2013-01-25 2 views
2

Я злюсь на Paperclip, потому что мне нужно клонировать объект ActiveRecord (название модели Product) и его вложения, но клон «крадет» оригинальные вложения объектаRAILS 3 + Скрепка: клонированный объект крадет вложения в оригинальную

Это то, что я имею в моем products_controller.rb:

original = Product.find_with_account(params[:id], @current_account) 
clone_object = original.dup 
clone_object.name = "#{original.name.split('-').first}-#{random_string}" 
clone_object.product_photos = original.product_photos 
clone_object.save 

(в середине я также добавить хэш, чтобы избежать имен столкновений между моими продуктами).

Другими словами, я хотел бы иметь:

ORIGINAL -> [Image1, Image2 ...] 

... Клонирование ...

ORIGINAL -> [Image1, Image2 ...] 
CLONED -> [Image1Clone, Image2Clone ...] 

Не могли бы вы указать мне на правильном направлении?

ответ

2

dup не будет дублировать связанные объекты. Вам придется написать свой собственный метод клонирования, который копирует исходные вложения и связывает их с дублированным продуктом.

+0

Почему это проголосовало? – jahrichie

+0

@jahrichie - понятия не имею, я не получил никаких объяснений :) – eugen

Смежные вопросы