Версионность модели Rails с утверждением - PullRequest
7 голосов
/ 03 июня 2011

У меня есть модель, которую участники смогут обновлять, но их изменения не вступят в силу, пока администратор не утвердит их.Кто-нибудь решил эту проблему и какие драгоценные камни вы бы порекомендовали для контроля версий?PaperTrail?Версии Vestal?

Ответы [ 2 ]

7 голосов
/ 04 июня 2011

Возможно, вы могли бы использовать vestal_versions с легким поворотом. Добавьте в свой контроллер действие after_update, которое откатывается к предыдущей версии, если пользователь, который внес изменение, не является администратором. Затем вы можете установить статус экземпляра в ожидании, что предупредит администратора для проверки. Администратор тогда просто рассмотрит последнюю версию и переместит ее вверх, если она будет одобрена.

# model_controller.rb
after_update :rollback_if_not_admin

def rollback_if_not_admin
  unless current_user.admin?
  #roll back changes
  version = @model_instance.versions.count
  if version > 1
    @model_instance.reset_to!(version - 1)
    @model_instance.status = "pending"
  end

  flash[:notice] = "Your changes will be reflected once an admin has reviewed them"
  redirect_to @model_instance
end
1 голос
/ 24 августа 2015

Существует Чертежник драгоценный камень. Это позволяет вам создавать черновые версии записей вашей базы данных. Подробнее здесь . Вам нужно будет добавить интерфейс администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...