2013-09-18 4 views
1

У меня есть это приложение, над которым я работаю, и все работает отлично. Я использую paperclip для загрузки изображения. Пользователь может загружать логотипы, после чего администратор может их принять или задать им изменения, после чего они будут загружать обновленную версию после внесения изменений.Контроль версий - Ruby on Rails

Прямо сейчас, когда вы редактируете с помощью paperclip (загружаете новое изображение), он удаляет старый. Я хочу сохранить пересмотр того, как логотипы менялись с течением времени. Старые изображения должны быть доступны в какой-то истории. Есть ли какие-либо учебники о том, как это сделать, или как я могу реализовать эту функцию?

Любая помощь будет очень оценена. Благодаря!!!!!

ответ

0

Это может быть легко достигнуто, если вы думаете о ваших изменений как ассоциации.

Вы можете иметь свою модель логотипа и ревизионную модель:

class Logo < ActiveRecord::Base 
    has_many :revisions, inverse_of: :logo 


class Revision < ActiveRecord::Base 
    belongs_to :logo 

    has_attached_file :image#, ... 

Теперь, если вы хотите текущий логотип:

@logo.revisions.last.image 

Edit: если вы ожидаете, чтобы добавить изменения к другим вещам, рассмотрим назвав модель пересмотра чем-то более явным, например, LogoRevision.

Если у вас мало моделей и все о логотипе, пересмотра достаточно.