2016-07-13 5 views
1

Как обновить имена файлов всех объектов paperclip после переименования модели и обновления имени таблицы?Обновление имени файла paperclip после переименования модели?

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

+0

Вам нужно обновить записи? потому что у вас есть возможность переопределить имя класса, которое paperclip использует для сохранения, и вам не нужно менять свои данные. – neydroid

+0

Мне нужно переименовать их и использовать имя для другой модели. –

ответ

0

Вам придется перейти к методу, возможность для нового url:

В этом используются по умолчанию, которые использует PAPERCLIP:

https://github.com/thoughtbot/paperclip/blob/95acf3b898bd782f4429d42fd2d8812505390328/lib/paperclip/attachment.rb#L24

{ 
    path: ':rails_root/public:url', 
    url: '/system/:class/:attachment/:id_partition/:style/:filename' 
} 

Вы должны будете переопределить поведение и изменить :class на ваше новое название модели, путь определяется динамически через URL:

class User < ActiveRecord::Base 
    has_attached_file :avatar, url: '/system/:class/:attachment/:id_partition/:style/:filename' 
end 

Вам нужно быть осторожным при использовании старого имени модели в другой модели, если вы не переопределите другую модель url.

+0

'attachment_file_name' содержит только имя файла, а не фактический путь. –

+0

Извините, вы правы, я смотрю на код драгоценного камня – neydroid

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