инициализация копии фотографии в другой модели с плагином для скрепок для рельсов - PullRequest
1 голос
/ 30 октября 2009

Вот мой вопрос. У меня есть модель пользователя с одним прикрепленным аватаром. Эта модель имеет много личных фотографий (с acceptpts_nested_attributes_for).

Я хочу иметь возможность автоматически инициализировать личную фотографию после сохранения пользовательского объекта, каким бы он ни был. Так, скажем, Боб загружает свой аватар, у Боба автоматически будет одна личная фотография (с правильными разными стилями скрепки), сгенерированная из изображения аватара.

Я не совсем уверен, как это сделать. Могу ли я положить его в свой контроллер или пользователя в модели после_сейва? Я использую Paperclip с хранилищем БД, так что было бы хорошо, если бы во время сохранения это было инициализировано, чтобы мне не пришлось его извлекать ... Может быть, я мог бы использовать скрытое поле формы?

1 Ответ

0 голосов
/ 30 октября 2009

Честно говоря ... Я не уверен, что рекомендовал бы этот курс действий. Многие люди загружают аватары, которые не являются фотографиями. Если вы сделаете это, вы, безусловно, должны дать пользователю возможность удалить фотографию, не удаляя при этом и свой аватар. Это означает, что вам нужно продублировать вложение. Для этого вам нужно подключиться к обратному вызову after_avatar_post_process. В этом обратном вызове создайте новый объект личной фотографии. На вложении photo фото модели назовите что-то вроде personal_photo.photo.assign(avatar.path). Я думаю, что это должно сработать, но я не пробовал. Мое главное беспокойство заключается в том, что вызов assign может не создать новое местоположение для вложения. Я думаю, что это так, но я не знаю абсолютно точно. Как минимум, это близко к тому, что вам нужно сделать, и должно заставить вас двигаться в правильном направлении.

...