Использование скрепки с существующим столбцом
У меня есть существующий столбец базы данных с именем "profile_picture", который в настоящее время является текстовым столбцом. Я хотел бы использовать гем paperclip, чтобы позволить пользователям загружать свои собственные "profile_picture".
Как мне лучше всего подойти к этой проблеме? Должен ли я удалить столбец "profile_picture" и запустить новую миграцию скрепки, или я могу каким-то образом изменить этот столбец и добавить связанные поля file_name, content_type и т. Д.?
1 ответ
Так как procile_picture не является столбцом, который обычно использует скрепка (атрибут profile_picture
использует столбец profile_picture_file_name
) нет необходимости снимать колонку. Однако сбивает с толку наличие в вашей базе данных столбца, который не сопоставляется с атрибутом с аналогичным именем (поскольку методы set и get предоставляются paperclip), поэтому я бы переименовал его, вероятно, перед созданием paperclip... или лучше: просто удалите столбец, если он бесполезен. Попробуйте привести в порядок все, что сможете.
Я настоятельно рекомендую переименовать колонку в profile_picture_file_name
потому что он может содержать данные, с которыми скрепка не может иметь дело.
class AddAvatarColumnsToUsers < ActiveRecord::Migration
def self.up
rename_column :users, :profile_picture, :old_profile_picture
add_attachment :users, :profile_picture
end
def self.down
remove_attachment :users, :profile_picture
rename_column :users, :old_profile_picture, :profile_picture
end
end