acts_as_audited. Как я могу добавить колонку «комментарий» - PullRequest
2 голосов
/ 29 октября 2009

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

Меня попросили поддержать сопоставление текстового комментария с каждой записью аудита (аналогично svn commit). И я нахожусь в тупике, как этого добиться.

Например. Допустим, у меня есть форма адреса, и пользователь обновляет город и штат, после нажатия кнопки «Сохранить» я прошу его предоставить комментарий. Мне бы хотелось, чтобы информация о комментариях была связана с созданной записью аудита.

Имеет смысл?

Спасибо за вашу помощь,

Jonathan

1 Ответ

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

Я думал, что это будет полезно. Так что я разветвлял и исправлял плагин сам.

Редактировать Мой форк был объединен с официальным хранилищем act_as_audited. Документация по использованию, содержащаяся в этом посте, теперь применима к vanilla acts_as_audited. Я изменил ссылки в этом посте, чтобы указать там. Получите официальный репозиторий, потому что мой не будет обновлен вышедшими патчами. В этом посте я обновил документацию по использованию, чтобы отразить улучшения.

Установите его как плагин:

rails_root$ script/plugin install git://github.com/collectiveidea/acts_as_audited.git

Использование на самом деле не отличается от vanilla acts_as_audited.

acts_as_audited теперь имеет дополнительную опцию. : require_comment, который, если true, блокирует создание, обновление или уничтожение проверенной модели, если не предоставлен комментарий.

Чтобы добавить комментарий к аудиту, используйте model.audit_comment= "My Comment" перед созданием / обновлением / уничтожением.

Audit_comment также может быть назначен массово, что упрощает добавление поля комментария в любую форму.

Прежде чем вы сможете использовать мой гем / плагин, вам необходимо обновить таблицу аудита, чтобы она содержала столбец комментариев. Если вы обновляете более старую версию acts_as_audited, в которой нет поля комментариев в таблице аудита, обновите плагин и запустите script/generate audited_migration_update update_audits_table. В противном случае вы готовы идти.

С помощью гема / плагина все, что нужно будет изменить, используя ваш пример адреса, добавив поле Audit_comment к вашей форме.

<%form_for @address do |f| %>
  ... standard address fields
  <%= f.label_for :audit_comment %>
  <%= f.text_field :audit_comment %>
<% end %>
...